HTC VIVE 交互

VIVE Tracker是VIVE VR系列产品的配件,可以通过绑定现实世界中的物体,来追踪物体的位置。

Tracker可以作为动作捕捉设备。以现有的VR设备,只有手柄和头盔,很难实现全身的动作捕捉,那么使用Tracker,配合一些反向动力学插件,比如FINAL-IK,就能实现在VR中的全身动作捕捉。

HTC Vive 通过两个基站捕捉其头显和控制手柄位置。基站每秒能发出 6次激光束,内有两个扫描模块,分别在水平和垂直方向轮流发射激光扫描定位空间。其头显和手柄上安装了70多个光敏传感器,计算激光达到时间从而计算每个光敏传感器相对于定位基站位置。经过多个光敏传感器数据融合,即可计算出头显及手柄的位置和旋转方向。其定位精度高,反应速度快,但需要避免基站的抖动。

由于 HTC Vive 基站一般会固定在某一位置不动,则其定位精度最高,且 HTC Vive 相较于其他 VR 设备,提供了 Tracker定位产品,用于现实中物体在虚拟世界中定位。

在Unity中,Tracker的开发并不需要额外的SDK支持,只需要导入VR开发必备的在SteamVR SDK即可。在SteamVR中,所有基站能够追踪的物体,都认为是Tracked Object。

1、场景中需要一个可视的物体来标记Tracker,在引擎中,可以新建一个GameObject用来标记Tracker,命名为Tracker,在其上添加SteamVR_TrackedObject脚本。

 2、为Tracker容器添加一个可视化的3D物体,这里添加一个Cube。

 3、选择CameraRig,在Steam VR_Controller Manager的Objects属性中,将Tracker添加到数组元素中。

 steamVR如何不用头显获取tracker的定位

1、找到steamVR的设置日志目录(一般是在steam\logs文件夹中)其中vrserver.txt(驱动)就是放着驱动的加载日志

2、文件路径

Fri Dec 18 2020 11:40:30.116 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\htc\resources\settings\default.vrsettings
Fri Dec 18 2020 11:40:30.116 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\lighthouse\resources\settings\default.vrsettings
Fri Dec 18 2020 11:40:30.116 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings
Fri Dec 18 2020 11:40:30.116 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettings
Fri Dec 18 2020 11:40:30.117 - [Settings] Load Json Settings from C:\Program Files (x86)\Steam\config\steamvr.vrsettings

3、找到Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings文件,修改三个参数:

"requireHmd" : false "forcedDriver" : "null" "activateMultipleDrivers" : true

找到Steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettings文件,修改:

{ "driver_null" : { "enable" : true, "serialNumber" : "Null Serial Number", "modelNumber" : "Null Model Number", "windowX" : 0, "windowY" : 0, "windowWidth" : 2160, "windowHeight" : 1200, "renderWidth" : 1512, "renderHeight" : 1680, "secondsFromVsyncToPhotons" : 0.01111111, "displayFrequency" : 90.0 } }

猜你喜欢

转载自blog.csdn.net/zjhgf/article/details/126337235
今日推荐