Плагин VRPN-клиент
Virtual Reality Peripheral Network (VRPN) - это независимая от устройств система для доступа к периферийным устройствам виртуальной реальности в приложениях VR. Система VRPN состоит из программных интерфейсов как для клиентского приложения, так и для драйверов оборудования и серверного приложения, которое взаимодействует с аппаратными устройствами. Приложение DTrack часто используется как серверное приложение.
Плагин Virtual Reality Peripheral Network (VRPN) представляет собой клиентское приложение, которое подключено к серверу и используется для получения входных данных от различных устройств ввода (джойстики, датчики трехмерного движения и отслеживания ориентации и т.д.) по сети.
Например, используя плагин VRPN Client, вы можете реализовать приложение, которое обрабатывает входные данные из элементов управления ART.
Смотрите также#
- Класс VrpnAnalogDevice
- Класс VrpnButtonDevice
- Класс VrpnTackerDevice
-
Примеры использования плагина:
- <UnigineSDK>/data/samples/plugins/vrpn_client_00, демонстрирующий получение данных от устройства FlyStick и двух датчиков, отслеживающих это устройство и голову. Данные представлены в виде текста.
- <UnigineSDK>/data/samples/plugins/vrpn_client_01, демонстрирующий получение данных от виртуального устройства FlyStick и двух датчиков, отслеживающих это устройство и голову, внутри сцены UNIGINE.
Примеры становятся доступными после добавления плагина VRPN Client в ваш проект через UNIGINE SDK Browser.
Запуск плагина VRPN-клиента#
Чтобы использовать плагин VRPN Client, вы должны указать опцию командной строки extern_plugin при запуске приложения:
main_x64 -extern_plugin "VrpnClient"
Создание приложения с использованием подключаемого модуля клиента VRPN#
Когда плагин VRPN Client загружен, в API добавляются следующие классы:
- VrpnAnalogDevice, который получает данные об устройств ввода (джойстики).
- VrpnButtonDevice, который получает данные о состоянии кнопок устройств ввода.
- VrpnTrackerDevice, который получает информацию о положении, ориентации, скорости и ускорении отслеживаемых объектов от датчиков трехмерного отслеживания.
При реализации приложения с использованием плагина экземпляры перечисленных выше классов должны создаваться при инициализации движка.
Например, если сервер VRPN установлен на ПК через приложение DTrack, следует передать следующее: DTrack@localhost. Если сервер установлен на другом ПК, вместо localhost следует указать IP-адрес ПК. Вы также должны вызвать метод update() для каждого инициализированного устройства при обновлении движка.
#ifdef HAS_VRPN_CLIENT
VrpnTrackerDevice tracker;
VrpnButtonDevice button;
VrpnAnalogDevice analog;
int init() {
tracker = new VrpnTrackerDevice("DTrack@localhost");
button = new VrpnButtonDevice("DTrack@localhost");
analog = new VrpnAnalogDevice("DTrack@localhost");
return 1;
}
int shutdown() {
delete tracker;
delete button;
delete analog;
return 1;
}
int update() {
tracker.update();
button.update();
analog.update();
return 1;
}
#else
int init() {
log.warning("No VRPN Client plugin detected\n");
return 1;
}
int shutdown() {
return 1;
}
#endif