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
Работа с контентом
Оптимизация контента
Материалы
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

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

Примечание
Перед запуском плагина вы должны запустить серверное приложение (обычно это DTrack), которое получает входные данные от устройства ввода. Плагин VRPN Client подключится к этому серверу и получит от него данные.

Чтобы использовать плагин VRPN Client, вы должны указать опцию командной строки extern_plugin при запуске приложения:

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

Создание приложения с использованием подключаемого модуля клиента VRPN#

Когда плагин VRPN Client загружен, в API добавляются следующие классы:

  • VrpnAnalogDevice, который получает данные об устройств ввода (джойстики).
  • VrpnButtonDevice, который получает данные о состоянии кнопок устройств ввода.
  • VrpnTrackerDevice, который получает информацию о положении, ориентации, скорости и ускорении отслеживаемых объектов от датчиков трехмерного отслеживания.
Примечание
Каждый класс может быть создан более одного раза.

При реализации приложения с использованием плагина экземпляры перечисленных выше классов должны создаваться при инициализации движка.

Примечание
Адрес сервера и имя устройства необходимо передать конструкторам классов UnigineScript (VrpnAnalogDevice, VrpnButtonDevice, VrpnTrackerDevice) следующим образом: device_name@server_address.

Например, если сервер 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
Последнее обновление: 13.12.2021
Build: ()