VR开发学习资源推荐:Oculus Sample Framework
Oculus此前在官网上发布《Best Practices Guide》,针对开发者的一些Do and Don't的建议,有较多关于避免眩晕(sickness)和增强沉浸感方面的内容。主要包括以下内容:
1)从头部动作到画面展现之间的延迟控制在20ms以内,以减少眩晕感。可使用内置的延迟测试工具测试应用的延迟。
2)使用位置跟踪的场合下,当用户接近跟踪区域边缘时,以某种方式提示用户回到跟踪区域内。
3)不要尝试修改图像变形算法、不要尝试修改头部跟踪数据、不要尝试修改位置跟踪数据。
4)人眼通过立体图像获得场景深度信息,对近处物体很敏感,一旦物体拉远则感知度立即变差。
5)尽可能地将UI融合在场景内,且最佳显示的位置是距离观察者2-3米的位置。准星一类的UI应该以聚焦对象的深度进行渲染。
加速/停止会引起视觉和平衡器官之间的感知冲突,如果加速/停止不是由用户发起的,则尽可能地避免上述情况。 6)避免线性垂直震动,接近0.2Hz频率的垂直震动让人最感不适。非垂直震动在接近0.3Hz的频率让人最感不适。
7)Zoom,或镜头缩放效果,尽可能避免。
8)避免要求用户平移、后退、旋转的场景。
9)使用用户熟知的环境作为背景(如响应头部转动的天空盒)有助于减轻视觉冲突和增强舒适感。
10)避免使用高频纹理(如条状、精细的纹理),高频纹理会增强环境中对于运动的感知,会让人不适。改用低频纹理可以改善这一状况。
11)解决用户接触输入设备困难的问题,或者将头部运动本身作为一种输入方式。
12)使用3D音效加强沉浸感。
Oculus近日面向开发者和设计师发布一款直观的学习示例工具Sample Framework,这个示例框架是专门支持Unity开发工具。Oculus平台内容工程师Andy Borrell表示Sample Framework是用来设计VR的初级入门示例,未来还会添加更多示例。
1)Crosshair(十字准星)
该场景展示了基于“凝视”的十字准星,并探索了在开发中必须考虑的一些关键因素。在非VR游戏中,常见的做法是在视野中心绘制一个准星,但VR应用开发者则必须考虑准星的深度信息。如果准星的位置过于靠近观察者,那么用户会觉得很不舒服。但如果准星离观察者太远,那么就会产生冲突的景深。
2)Locomotion(运动)
该示例场景可以让开发者体验实时第一人称运动模式,从而更好的理解相关的设计思路。在开发基于第一人称的运动控制系统时必须考虑,因为很容易导致用户的不舒适。
3)Teleportation(隐形传输)
隐形传输是VR中流行的运动方式,主要因为它可以有效避免因第一人称控制而导致的不舒适。该示例场景显示了传送机制的实现。
4)User Interface(用户界面)
在场景”Pointers”和”Pointers- Gaze Click”中探索了如何在用户界面中使用pointer。两个示例场景都探索了基于“凝视”的交互机制,以及如何和物理对象及平面的UI。
5)其他:
.Keyboard: 如何在VR中实现键盘
.Mirror: 展示了如何控制角色的头部一边反应玩家的运动,从而造成一种镜像的感觉。
.Stairs:探索在第一人称视角下走楼梯的用户体验
.Surface Detail: 探索为呈现表面细节所需的shading技术,从而更好理解其在VR中的效果。
.Tracking Volume: 探索了几种显示用户立体追踪的方式。