This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор 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
Учебные материалы

Плагин 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 "UnigineVrpnClient"

Создание приложения с использованием подключаемого модуля клиента 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
Последнее обновление: 11.01.2024
Build: ()