此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量知识星球 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。
社区链接:
Spatial XR 高级社区(知识星球)
Spatial XR 高级社区(爱发电)
这篇教程将会介绍 Meta XR SDK(旧版叫做 Oculus Integration)中 OVRManager 的 Eye Level,Floor Level,Stage 的区别。
Oculus Integration 开发包中有个 OVRManager 脚本被挂载到 OVRCameraRig 物体上。OVR Manager 中有个 Tracking Origin Type 参数,它相当于追踪的参考系,参数分为 Eye Level, Floor Level 和 Stage。
VR 设备会对头显进行追踪,于是现实中头显的位置和旋转数据会被传输给 Unity,让 Unity 中的眼部相机匹配上现实中玩家头显的位置和朝向。而头显的位置和旋转数据是个三维坐标,那么它们的值一定是相对于某个参考系的,只有确立坐标系的原点后,才能给出三维坐标的值。 这时候 Tracking Origin Type 参数就派上了用场。Oculus 官方文档对三种 Type 的定义是这样的:(https://developer.oculus.com/documentation/unity/unity-add-camera-rig/)
- Eye Level tracks the position and orientation relative to the device’s position.
- Floor Level tracks the position and orientation relative to the floor, whose height is decided through guardian setup.
- Stage also tracks the position and orientation relative to the floor. On Quest, the Stage tracking origin will not directly respond to user recentering.
如果直观的看,Tracking Origin Type 也相当于设置 VR 世界中头部的初始高度。
选择 Floor Level,会以安全区的地面(打开 VR 设备一般都会先设置地面高度,然后划安全区)作为参考系,运行程序后头部高度会以地面作为参考点,高度相当于摆放在场景中的玩家物体的高度加上现实中玩家头显到安全区地面的距离。
选择 Eye Level,会以头显设备本身作为参考系,头部高度相当于摆放在场景中的玩家物体的高度加上头显相对于设备自身坐标系的高度(每次设备定位成功后会建立设备自身的坐标系,以现实世界中头显的位置作为原点),不会额外加上现实中头显到地面的高度。
选择 Stage,和 Floor Level 一样也是以地面作为参考系,但是不会受头显的重定位影响。重定位是什么意思呢?以 Quest 举例,长按右手柄的 Oculus 键或者重新划安全区会对用户的位置和朝向重新定位,根据用户当前的位置和朝向重新定位原点的位置。假设刚进入一个游戏,我们在现实中的位置相当于虚拟世界中的初始位置,位于(0,0,0)原点,然后一开始有个方块处于我们的正前方。这时候我们在现实中转过 90°,然后往前走一步,再进行重定位。如果选择的是 Floor Level,方块就会被重新定位在我们的正前方,和一开始的位置是不一样的;如果选择的是 Stage,重定位是不起作用的,方块还会位于原来的位置。
大家可以通过下面的图感受它们的区别,也建议自己打包出来运行一下。
(注:只有打包出来,在一体机中运行,才能看到 Stage 不受重定位的影响,在串流的时候是看不出来的)
⚡相机的初始高度
Eye Level:
Floor Level / Stage:
⚡Floor Level 和 Stage 的区别
Floor Level:
Stage:文章来源:https://www.toymoban.com/news/detail-543414.html
文章来源地址https://www.toymoban.com/news/detail-543414.html
到了这里,关于Unity VR:Oculus Integration 中 OVRManager 的 Eye Level,Floor Level,Stage 的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!