This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
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
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

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

Примечание
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 "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, который получает информацию о положении, ориентации, скорости и ускорении отслеживаемых объектов от датчиков трехмерного отслеживания.
Примечание
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
Последнее обновление: 16.08.2024
Build: ()