VR——Oculus开发总结

 一、基础知识

1、AR、VR与MR区别

VR特点:以沉浸式、私密性以及个人体验为主等,代表产品:Oculus、Pico等。

AR特点:与现实产生交互、现实增强。与AI结合产生更大的价值,代表作品MagicLeap等。

MR特点:在AR之上,可与现实产生3维交互,用户可以自然手势、视线以及语音交互方式来操作周遭的一切虚拟物体,结合物联网概念,可以周遭一切真实物体进行虚实自然交互。代表作品:微软 Hololens2,苹果 Vision Pro等。

        其中沉浸体验的商业本质即提供了一整套方法论,这套方法论以传统工业的方式来模拟个性化的体验。虽然沉浸体验依旧是工业制作的产物,但却能使消费者主观上认为自身获得了个性化的体验。这便是沉浸体验的商业本质和精髓,极大化满足了参与者个人的个性化需求。

2、3DOF和6DOF定义

DOF:在结构力学上的自由度(Degrees of freedom),或称动不定度(Degrees of kinematic indeterminacy),意指分析结构系统时,有效的结构节点上的未知节点变位数。自由度大致有两种型式:旋转的自由度和移动的自由度。在平面中,只有三个自由度,一者为面旋转,二者为前后及左右两个移动。在立体中,有六个自由度,三个为前后、上下及左右三个移动和前后、上下及左右三面旋转。简单来说就是沿三个坐标轴的移动和绕三个坐标轴的转动 把构建相对于参考系具有独立运动参数的数目称为构件的自由度

3DOF:就是指物体具备在X、Y、Z 三轴上旋转的能力。常规方法是使用陀螺仪来捕捉用户头部旋转,并呈现全景画面中相对应的部分,从而使用户在视觉上拥有被场景包裹的感受,实现基础的视觉沉浸。

6DOF:就是指物体除了具备在X、Y、Z 三轴上旋转的能力之外,也具备在X、Y、Z三轴上移动的能力。人体的运动也可以大致分为旋转和位移两大类,6DOF的VR设备几乎可以模拟所有的头部动态。并且,利用位移数据,也可以标定用户身高。这在多人VR互动内容中,是极其重要的一点。

3、IMU(惯性测量单元)

要实现各个方向和角度的追踪,需要用到 IMU 装置,IMU 是测量物体三轴姿态角及加速度的装置。

一般IMU包括三轴陀螺仪及三轴加速度计,某些9轴IMU还包括三轴磁力计。这些传感器的功能如下:

  • 陀螺仪:陀螺仪可以检测物体转动时三个轴向上的角速度,单位为弧度/秒。静止时角速度为零。

  • 加速度计:加速度计可以检测物理移动时的加速度,单位为米/平方秒。静止时输出的是重力加速度值。

  • 磁力计:可用于测试磁场强度和方向,定位设备的方位,磁力计的原理跟指南针原理类似,可以测量出当前设备与东南西北四个方向上的夹角。

在开始追踪前,首先要建立坐标系。以右手坐标系为例,坐标系原点和各轴朝向的建立方法为:

  • 原点:追踪算法启动时HMD所在的位置为原点

  • X轴正方向:与屏幕平行的水平方向,并指向屏幕右侧

  • Y轴正方向:重力方向的反方向

  • Z轴正方向:垂直于屏幕,并且朝向用户的一侧

4、追踪原理

3Dof追踪主要是追踪三个轴向的旋转状态,结果可以用欧拉角来表示:

  • 俯仰角(Pitch):绕X轴旋转的角度

  • 偏航角(Yaw):绕Y轴旋转的角度

  • 滚动角(Roll):绕Z轴旋转的角度

俯仰角(Pitch) 偏航角(Yaw) 滚动角(Roll)

知道了各个方向上的旋转角度,并进行持续的追踪,就可以确定用户没有发生位移姿态下的动作,比如转头、点头、摇头等动作,追踪过程如下:

  1. 确定初始状态:依靠加速度计,可以确定俯仰角和滚动角的旋转状态,这两个角度的变化,会引起加速度计在重力加速度方向上的变化;偏航角处于水平方向上,因此初始旋转状态定义为0度。

  1. 计算各方向上的角速度:依靠陀螺仪可以检测三个方向上的角速度,单位为弧度/秒,静止时角速度为0。假设陀螺仪数据更新的时间间隔为ΔT,那么旋转角度的计算公式为:

旋转角度 = 角速度 x ΔT

各轴向初始旋转状态已知,每个ΔT转动的角度也知道,这样不停的累加,就可以持续的追踪各个轴向最新的旋转状态。

随着用户的头部移动和转动,各个轴向上的角速度是不停变化的,因此陀螺仪数据更新时间间隔越小,那么得到的旋转角度就越接近角速度,追踪的结果也就越准确。

  1. 累积误差消除:陀螺仪作为一个测量设备,数据更新的时间间隔总是存在一定的误差,长时间运行后,角度的计算也会出现误差,因此需要对追踪结果进行修正:

    1. 俯仰角和滚动角:使用加速度计进行修正

    2. 偏航角:使用磁力计进行修正

6Dof追踪是在3Dof追踪的基础上,增加对空间位移的追踪。目前空间位移的追踪方案主要有两大流派:外向内追踪技术(Outside-in)和内向外追踪技术(Inside-out)。

  • 外向追踪技术:将摄像头放置在环境中,通过拍摄HMD上的Mark点或者光球等方式,确定HMD和摄像头的相对位置,然后转换成HMD在各个轴向上位移的距离。

  • 内向追踪技术:将摄像头安装到HMD上。通过SLAM算法获取环境中的特征点信息,并构建一个基于特征点的地图来实现定位。目前大部分XR设备都采用的这种方式,特别是一体机设备,全部都采用了内向外的追踪方案。

二、开发步骤

1、开启Oculus开发者模式及电脑连接Oculus

  1. 注册facebook账号、oculus的开发者账号----https://developer.oculus.com/manage/organizations/create/

  2. 手机下载oculus软件(若没有goolgle play软件则使用第三方87870虚拟现实网),苹果手机需要非国服才能下载,需要在账户里设置一下所在地区。(87870虚拟现实网

  3. 手机连接oculus设备,然后在手机里将设备开启为开发者模式(oculus里开启开发者模式没用)

  4. 将ADC的库配置上去,进入系统里面的高级设置中进行环境变量的配置,将ADC的地址粘贴上去(adb下载安装及使用-CSDN博客

  5. 设备与电脑进行连接,VR设备需点击允许电脑读取设备数据。

2、核心部件

Oculus 集成 SDK 包含OVRCameraRig预制件,该预制件提供变换对象来表示 Oculus 跟踪空间。

它包含一个跟踪空间游戏对象,用于微调头部跟踪参考框架与用户的世界之间的关系。在跟踪空间对象下,会找到一个中心眼锚,它是 Unity 的主摄像头,每只眼睛有两个锚游戏对象,以及控制器的左右手锚。它还包含一个定制的 VR 摄像头,它取代了 Unity 的传统摄像头。

       当用户在 Unity 中启用 VR 支持时,头戴设备会自动将头部和位置跟踪参考传递给 Unity。这使相机位置和方向与现实世界中的用户位置和方向精确匹配。头部跟踪的姿势值会覆盖相机的变换值,这意味着相机始终处于相对于用户对象的位置

3、常见VR问题

①Oculus属于移动平台还是VR平台,Oculus的帧速率如何调整以及Oculus的默认帧速率为多少?

答:Oculus属于VR平台,Oculus的帧速率大概73帧每秒,无法使用Application.targetFrameRate进行调节,Unity编辑器默认帧速率为175帧每秒,受Application.targetFrameRate影响。

Application.targetFrameRate和QualitySettings.vSyncCount让您可以控制游戏的帧速率以获得更流畅的性能。targetFrameRate通过指定游戏每秒尝试渲染的帧数来控制帧速率,而vSyncCount指定帧之间允许的屏幕刷新次数。 

②移动平台忽略QualitySettings.vSyncCount。使用Application.targetFrameRate控制移动平台上的帧速率。 

移动设备可实现的最大帧速率是屏幕的刷新率。例如,刷新率为 60 赫兹的设备的最大可实现帧速率为每秒 60 帧。

要以最大可实现的帧速率为目标,请设置Application.targetFrameRate为屏幕的刷新率Screen.currentResolution包含屏幕的刷新率。

为了节省电池电量,移动平台上的默认帧速率低于可实现的最大帧速率。通常,移动平台上的默认帧速率为 30 fps。要以默认帧速率为目标,请将Application.targetFrameRate设置为 -1。

③VR 平台忽略QualitySettings.vSyncCount和Application.targetFrameRate。相反,VR SDK 控制帧速率。

④Unity Editor 在编辑器中,Application.targetFrameRate仅影响 Game View。它对其他编辑器窗口没有影响。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值