OpenVR针对OptiTrack的支持方式

首先来谈谈OpenVR,OpenVR为VR游戏提供统一的数据接口,从而使得VR游戏不用直接与厂商的SDK打交道。因此,它可独立于游戏来添加扩展新外设。也就是说假如要添加一个新手柄或者头显时,只需要修改OpenVR端即可,而不用再去改已经开发好的VR游戏,如果直接使用厂商SDK的话,则每添加一个厂商的外设就需要改一下VR游戏内的接口。OpenVR的API都是以C++接口类方式呈现的,而且都是纯虚函数。当应用程序初始化系统时,它会返回该应用程序所使用到的SDK头文件内相匹配的接口。新发布的接口版本会兼容以前的接口版本,因此,应用程序不必更新到最新的SDK也可正常使用。

这里提到了纯虚函数,纯虚函数只提供一个接口,具体实现方法需要派生类自己去重载。由于纯虚函数的出现,基类变成了一个抽象类,只能被继承,而不能被实例化,纯虚函数必须在派生类中重载。在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。一般而言纯虚函数的函数体是缺省的,但是也可以给出纯虚函数的函数体,此时纯虚函数仍然为纯虚函数,对应的类仍然为抽象类,还是不能实例化对象。

接下来简单介绍一下SteamVR,SteamVR是通过Steam安装在电脑上的,通过SteamVR,不同的VR系统(Unity,UE等)调用OpenVR的API来开发应用程序,还可在OpenVR中添加驱动来对接VR硬件。SteamVR平台主要是为Vive服务的,但是它也兼容了OSVR, Rift和Touch的驱动,还有些人编写了Razer Hydra的驱动来匹配旧的雷蛇手柄。也就是说,SteamVR依赖于OpenVR。

OpenVR对于将OptiTrack定位数据替换原有VR游戏中定位的实现方式是通过OpenVR Driver这个驱动程序来实现的,OpenVR为在OptiTrack系统中的VIVE和VIVE Pro的HMD所集成的驱动程序。从OptiTrack官网下载页面:https://www.optitrack.com/downloads/plugins.html下载OpenVR Driver驱动程序,安装并按照提示设置驱动程序。成功安装驱动程序后,启动配置程序软件(***\OpenVR\ConfigUtil\driver_optitrack_configutil.exe)。使用此工具,可以加载和检查现有配置,并根据需要更改设置。要导入当前设置,单击加载,然后单击保存以保存更改。此工具需要以管理员权限运行此工具;如果不是,则可能无法正确修改设置。如果配置软件通过OpenVR检测到SteamVR的运行实例,则如图所示,它将在最上方指示为Initialized。在SteamVR运行期间修改设置后,必须重新启动SteamVR才能更新所更改的设置。

我们首先来配置连接设置,以便驱动程序监听来自跟踪数据的Motive服务器。服务器地址必须与Motive将数据流传输到的地址匹配,本地地址与安装驱动程序的计算机的IP地址匹配。接下来在HMD中,勾选Enable启用HMD并输入HMD的刚体ID。刚体ID必须与Motive中HMD刚体定义的ID属性匹配。

需要时,也可以配置Vive控制器。为此,请在SteamVR运行时打开配置程序工具。在配置工具的顶部,它应将OpenVR状态指示为Initialized(初始化),并且控制器必须显示在SteamVR中。然后,在控制器部分中,勾选Enable启用控制器,使用下拉菜单指定替代设备,然后在Motive中输入控制器刚体的相应ID。完成所有配置后,保存更改并重新启动SteamVR。正确配置后,SteamVR将为每个启用的控制器增加一个跟踪器图标。

对比OpenVRDriver所修改的Steam配置文件,可以看到OpenVRDriver是针对OptiTrack数据,通过在配置文档中修改追踪字段(TrackingOverrides)来使原有HTCVIVE设备的定位数据替换为OptiTrack的定位数据,再通过Motive中设置的刚体ID匹配设备。

修改后若需要重新启用HTCVIVE的定位,需要把“TrackingOverrides”和“driver_optitrack”两个字段都删掉,方可还原为HTCVIVE定位,OptiTrack数据将不再有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值