This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials

Плагин VRPN-клиент

Внимание
Функционал, описанный в этой статье, недоступен в Community редакции SDK.
Чтобы использовать этот функционал вам необходимо получить лицензию на Sim SDK.

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-клиента#

Примечание
Before launching the plugin, you should run a server application (it is usually DTrack) that receives input data from an input device. The VRPN Client plugin will connect to this server and receive data from it.Перед запуском плагина вы должны запустить серверное приложение (обычно это DTrack), которое получает входные данные от устройства ввода. Плагин VRPN Client подключится к этому серверу и получит от него данные.

To use the VRPN Client plugin, you should specify the extern_plugin command line option on the application start-up:Чтобы использовать плагин VRPN Client, вы должны указать опцию командной строки extern_plugin при запуске приложения:

Shell-команды
main_x64 -extern_plugin "VrpnClient"

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, который получает информацию о положении, ориентации, скорости и ускорении отслеживаемых объектов от датчиков трехмерного отслеживания.
Примечание
Each class can be instanced more than once.Каждый класс может быть создан более одного раза.

When implementing an application using the plugin, instances of the classes listed above should be created on engine initialization.При реализации приложения с использованием плагина экземпляры перечисленных выше классов должны создаваться при инициализации движка.

Примечание
The server address and the device name should be passed to constructors of the UnigineScript classes (VrpnAnalogDevice, VrpnButtonDevice, VrpnTrackerDevice) as follows: device_name@server_address.Адрес сервера и имя устройства необходимо передать конструкторам классов UnigineScript (VrpnAnalogDevice, VrpnButtonDevice, VrpnTrackerDevice) следующим образом: device_name@server_address.

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() для каждого инициализированного устройства при обновлении движка.

Исходный код (UnigineScript)
#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
Последнее обновление: 17.09.2021
Build: ()