Плагин VRPN-клиент
Virtual Reality Peripheral Network (VRPN) is a device-independent system for accessing virtual reality peripherals in VR applications. The VRPN system consists of programming interfaces for both the client application and the hardware drivers and a server application that communicates with the hardware devices. The DTrack application often goes as a server application.Virtual Reality Peripheral Network (VRPN) - это независимая от устройств система для доступа к периферийным устройствам виртуальной реальности в приложениях VR. Система VRPN состоит из программных интерфейсов как для клиентского приложения, так и для драйверов оборудования и серверного приложения, которое взаимодействует с аппаратными устройствами. Приложение DTrack часто используется как серверное приложение.
The Virtual Reality Peripheral Network (VRPN) plugin represents the client application which is connected to the server and used for receiving input data from different input devices (joysticks, 3D motion and orientation tracking sensors and so on) via the Network.Плагин Virtual Reality Peripheral Network (VRPN) представляет собой клиентское приложение, которое подключено к серверу и используется для получения входных данных от различных устройств ввода (джойстики, датчики трехмерного движения и отслеживания ориентации и т.д.) по сети.
For example, by using the VRPN Client plugin, you can implement an application that processes input data from ART controls.Например, используя плагин VRPN Client, вы можете реализовать приложение, которое обрабатывает входные данные из элементов управления ART.
See AlsoСмотрите также#
- VrpnAnalogDevice classКласс VrpnAnalogDevice
- VrpnButtonDevice classКласс VrpnButtonDevice
- VrpnTackerDevice classКласс VrpnTackerDevice
-
Samples on the plugin usage:Примеры использования плагина:
- <UnigineSDK>/data/samples/plugins/vrpn_client_00 that demonstrates receiving data from the FlyStick device and two sensors, tracking this device and a head. The data is presented as a text.<UnigineSDK>/data/samples/plugins/vrpn_client_00, демонстрирующий получение данных от устройства FlyStick и двух датчиков, отслеживающих это устройство и голову. Данные представлены в виде текста.
- <UnigineSDK>/data/samples/plugins/vrpn_client_01 that demonstrates receiving data from the virtual FlyStick device and two sensors, tracking this device and a head, inside the UNIGINE scene.<UnigineSDK>/data/samples/plugins/vrpn_client_01, демонстрирующий получение данных от виртуального устройства FlyStick и двух датчиков, отслеживающих это устройство и голову, внутри сцены UNIGINE.
The samples are available if you add the VRPN Client plugin to your project via UNIGINE SDK Browser.Примеры становятся доступными после добавления плагина VRPN Client в ваш проект через UNIGINE SDK Browser.
Launching VRPN Client PluginЗапуск плагина VRPN-клиента#
To use the VRPN Client plugin, you should specify the extern_plugin command line option on the application start-up:Чтобы использовать плагин VRPN Client, вы должны указать опцию командной строки extern_plugin при запуске приложения:
main_x64 -extern_plugin "UnigineVrpnClient"
Implementing Application Using VRPN Client PluginСоздание приложения с использованием подключаемого модуля клиента VRPN#
When the VRPN Client plugin is loaded, the following classes are added to UnigineScript:Когда плагин VRPN Client загружен, в API добавляются следующие классы:
- VrpnAnalogDevice that receives data about input devices sticks.VrpnAnalogDevice, который получает данные об устройств ввода (джойстики).
- VrpnButtonDevice that receives data about input devices buttons states.VrpnButtonDevice, который получает данные о состоянии кнопок устройств ввода.
- VrpnTrackerDevice that receives about position, orientation, velocity and acceleration of tracked objects from 3D tracking sensors.VrpnTrackerDevice, который получает информацию о положении, ориентации, скорости и ускорении отслеживаемых объектов от датчиков трехмерного отслеживания.
When implementing an application using the plugin, instances of the classes listed above should be created on engine initialization.При реализации приложения с использованием плагина экземпляры перечисленных выше классов должны создаваться при инициализации движка.
For example, if the VRPN server is set on the PC via the DTrack application, the following should be passed: DTrack@localhost. If the server is set on another PC, instead of the localhost, you should specify the PC's IP address. You should also call the update() method for each initialized device on engine update.For example, if the VRPN server is set on the PC via the DTrack application, the following should be passed: DTrack@localhost. If the server is set on another PC, instead of the localhost, you should specify the PC's IP address. You should also call the update() method for each initialized device on engine update.For example, if the VRPN server is set on the PC via the DTrack application, the following should be passed: DTrack@localhost. If the server is set on another PC, instead of the localhost, you should specify the PC's IP address. You should also call the Update() method for each initialized device on engine update.Например, если сервер 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