VRPN 客户端插件
Virtual Reality Peripheral Network (VRPN) 是一个独立于设备的系统,用于访问 VR 应用程序中的虚拟现实外围设备。 VRPN 系统由客户端应用程序和硬件驱动程序的编程接口以及与硬件设备通信的服务器应用程序组成。 DTrack 应用程序通常用作服务器应用程序。
Virtual Reality Peripheral Network (VRPN) 插件代表客户端应用程序,它连接到服务器并用于通过网络从不同的输入设备(操纵杆、3D 运动和方向跟踪传感器等)接收输入数据。
例如,通过使用 VRPN Client 插件,您可以实现处理来自 ART 控件的输入数据的应用程序。
也可以看看#
- VrpnAnalogDevice 类
- VrpnButtonDevice 类
- VrpnTackerDevice 类
-
插件使用示例:
- <UnigineSDK>/data/samples/plugins/vrpn_client_00 演示从 FlyStick 设备和两个传感器接收数据,跟踪该设备和头部。数据以文本形式呈现。
- <UnigineSDK>/data/samples/plugins/vrpn_client_01 演示了从虚拟 FlyStick 设备和两个传感器接收数据,在 UNIGINE 场景中跟踪该设备和头部。
如果您通过 UNIGINE SDK 浏览器将 VRPN Client 插件添加到您的项目,则这些示例可用。
启动 VRPN 客户端插件#
在启动插件之前,您应该运行一个从输入设备接收输入数据的服务器应用程序(通常是 DTrack)。 VRPN Client 插件将连接到该服务器并从中接收数据。
要使用 VRPN Client 插件,您应该在应用程序启动时指定 extern_plugin 命令行选项:
main_x64 -extern_plugin "VrpnClient"
使用 VRPN 客户端插件实现应用程序#
加载 VRPN Client 插件后,以下类将添加到 UnigineScript:
- VrpnAnalogDevice 接收有关输入设备棒的数据。
- VrpnButtonDevice 接收有关输入设备按钮状态的数据。
- VrpnTrackerDevice 从 3D 跟踪传感器接收有关被跟踪对象的位置、方向、速度和加速度。
每个类可以被多次实例化。
使用插件实现应用程序时,应在引擎初始化时创建上面列出的类的实例。
服务器地址和设备名称应传递给 UnigineScript 类 (VrpnAnalogDevice, VrpnButtonDevice, VrpnTrackerDevice) 的构造函数,如下所示:device_name@server_address。
例如,如果通过 DTrack 应用程序在 PC 上设置 VRPN 服务器,则应传递以下内容:DTrack@localhost。如果服务器设置在另一台 PC 上,而不是 localhost,您应该指定 PC 的 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
最新更新:
2021-12-13
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)