VR开发者:要具备怎样的知识才能进行rift开发?

 

OculusRift是一种虚拟现实仪器,用一个遮罩在双眼前的不透明显示器,搭配两个可更换透镜,高质量陀螺仪、加速度传感器和地磁传感器,以及后来的位置跟踪器(DK2专有)而成的一整套设备。...





Oculus Rift是一种虚拟现实仪器(以下简称rift),用一个遮罩在双眼前的不透明显示器,搭配两个可更换透镜,高质量陀螺仪、加速度传感器和地磁传感器,以及后来的位置跟踪器(DK2专有)而成的一整套设备。

目前rift尚未发布面向正式消费者的版本,而只公开了两个版本开发包(development kit),通常称之为DK1和DK2。Rift的工作原理分为两部分。一部分跟目前3D电影或者3D眼镜概念类似(顺带说一句,我个人比较讨厌3D这.......,太宽泛也极具商业欺骗性,更准确的说法是stereoscope),即模仿现实世界,

通过为左右两眼显示不同的画面,让大脑合成一副带有更多深度信息的“立体”图像。

另一部分是跟互动相关。由于rift不只是要做另一个Sony HMZ-T3W,所以它为了互动体验还专门提供和优化了捕捉头部运动的组件。

Rift设备可以很精准且迅速地捕捉到头部的任意旋转,DK2更能在一个空间角范围内捕捉头部的线性运动。

结合这两部分,rift能营造一个和现实世界完全隔绝的视觉环境,且能提供一定程度上的体感结合,即头部旋转和小范围线性移动。在硬件上也做到了较好的广视域和低延迟。



了解了rift是什么后,我们进入正题:

要具备怎样的知识才能进行rift开发?

首当其冲的一点是3D相关知识。这里我说的不是stereoscopic的“3D”,而是一些计算机图形学基本知识。这里面包括现代实时图形应用的主要逻辑组成部分,包括:

  • 摄像机
  • 光照及其原理
  • 坐标系及其转换
  • 材质和纹理系统
  • 基于网格的物件表示
其他方面如屏幕空间后处理效果、shader、动画系统等铺开的部分不是必须项。说得更明白一些,是一个运用3ds max/Maya这类数字内容创作软件的创作人员应该熟知的部分。这方面稍有门槛,但不算太高。



在早期stereoscope概念出来的时候,很多开发者还必须关心如何在节省性能的前提下渲染左右两张不同的画面

而现在rift硬件和SDK已经做掉大部分工作,不要说什么头部高速同步,连透镜色散和调瞳距都被我们卡马克大神和Abrash大神做掉了。

而且Oculus公司也跟很多引擎大厂合作,提供了这些引擎的插件。所以如果你用Unity或者Unreal的话,连SDK集成的事都可以省去了(out-of-box)。

留给开发者的任务是更好地理解rift硬件所能带给我们的特性,并将这些特性应用到实际应用中去。

举个很实际的例子:由于rift是沉浸式的体验,带上了rift视觉上就跟外界说拜拜了。这时候输入便成了一个棘手问题。

如果要用户在看到logo之后,再脱下rift去摸键盘就太弱了,而且不是所有键盘用户都能应付盲打,保不齐某些用户还要在使用过程中再脱下来去找键位。配备一个手柄会好一些,但不能从根本上解决问题。

当然还有一些诸如挂载LeapMotion、MYO之类的解决方案,但这都超出了rift本身的范畴。就这个问题来说,我倾向于从rift能提供的输入来着手解决。

比如把头部旋转和移动不仅看做是摄像机的同步,还能当做一种输入方式。这方面比较好的例子有《Titans of Space》和《Vanguard V》。

所以除了必要的3D知识之外,rift开发要学习的东西对于大部分人都是全新的,而且基本都属于应用层问题。

官方煞费苦心地在官网放了很多关于如何开发rift应用的忠告,主要是一些Do and Don't的条例,有较多关于避免眩晕(sickness)和增强沉浸感方面的内容。

不过浏览了官方中的demo之后,却发现好像很少有人注意这些点。这里先列出一些初步必要关心的资料吧:

1.从头部动作到画面展现之间的延迟控制在20ms以内,以减少眩晕感。可使用内置的延迟测试工具测试应用的延迟。

2.使用位置跟踪的场合下,当用户接近跟踪区域边缘时,以某种方式提示用户回到跟踪区域内。

3.不要尝试修改图像变形算法、不要尝试修改头部跟踪数据、不要尝试修改位置跟踪数据。

4.人眼通过立体图像获得场景深度信息,对近处物体很敏感,一旦物体拉远则感知度立即变差。

5.尽可能地将UI融合在场景内,且最佳显示的位置是距离观察者2-3米的位置。准星一类的UI

6.应该以聚焦对象的深度进行渲染。

7.加速/停止会引起视觉和平衡器官之间的感知冲突,如果加速/停止不是由用户发起的,则

尽可能地避免上述情况。

8.避免线性垂直震动,接近0.2Hz频率的垂直震动让人最感不适。非垂直震动在接近0.3Hz的频率让人最感不适。

9.Zoom,或镜头缩放效果,尽可能避免。避免要求用户平移、后退、旋转的场景。

10.使用用户熟知的环境作为背景(如响应头部转动的天空盒)有助于减轻视觉冲突和增强舒适感。

11.避免使用高频纹理(如条状、精细的纹理),高频纹理会增强环境中对于运动的感知,会让人不适。改用低频纹理可以改善这一状况。

12.解决用户接触输入设备困难的问题,或者将头部运动本身作为一种输入方式。

使用3D音效加强沉浸感。

本文来源:知乎整理

综上所述:Oculus Touch控制器和Steam VR(HTC Vive)所提供的几个原型控制器,可以基本算是初步解决问题。相比之下Gear VR头盔上的触摸板、Cardboard上的磁块拨片对于重度游戏来说就显得过于简单了。

备注:VR投资对接会将于5月11日在北京海淀区杏石口路益园文化创意产业基地C区举行,报名请点击文末“阅读原文”

欢迎关注合作伙伴 VR库

vr库:是一家专注于VR、AR、人工智能领域的垂直网络媒体,致力于为VR从业者、投资人、爱好者们提供最专业、及时的咨询,并为创业者提供有价值的服务。
点击下方“阅读原文”
参加VR投资对接会


    关注 VR库


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册