您的位置:首页 > 其它

Oculus的最佳实践--简介(2)

2016-04-07 16:13 225 查看
Oculus的最佳实践简介
VR是一种沉浸式媒介。它带给你完全进入另一个空间的感觉和提供比普通显示器多的多的体验。该指南意图帮助开发者在Oculus硬件上开发安全的、令人愉快的VR内容。开发者有责任确保自己的内容符合最佳实践的标准,并和相关的科学文献保存同步。

综述

如果VR忽略了最基本的实践指导,它们可以导致人们呕吐。这是由一系列症状引起,比如:眼睛疲劳、眩晕。大部分问题是又VR硬件导致的,比如系统延迟。Oculus Rift是新一代的VR设备,它修复了很多早期的系统问题。但即使用完美的硬件(不带任何瑕疵的),不适当的内容设计还是会带来不舒服的体验。

因为以前VR是业内小圈的、需要专业的训练才能掌握,所以导致VR没有太多的人学习。在这种情况下,我们提供理论和实验结果来阐述它们。为了达到有趣的、舒适的用户体验,让用户去测试你的内容是绝对重要的;VR作为流行媒介太年轻以致于还没有建立体验各方面的规范。虽然我们一直在探索,还是有很多东西需要去学习。我们依靠你和Oculus Rift开发者提供的反馈来帮助我们完善实践和规则。

注意:和其他媒介一样,对开发者和用户来说不使用断点是不推荐的,请查看最新的健康和安全警告www.oculus.com/warnings

透视图

1、使用Oculus VR变形着色器。不用你自己的变形方案,即使它看起来对,但是它经常让用户沮丧。

2、获取精确的工程矩阵和使用默认的Oculus头部模式。头部运动带来的任何光源偏差都会导致视觉问题和身体不适。

3、从始至终维持VR的沉浸式。例如:不能在用户前面贴一张照片,全铺在屏幕上(不能响应头部运动),这会是用户迷惑。

4、两个眼视图应该是不同的,处理效果必须应用在两个眼视图上就和在Z轴上正确渲染一个适当的溶解图片。

5、考虑超级采样或者抗锯齿来弥补低分辨率下眼视图中心显示的差效果,

最小延迟

1、你的代码可能需要运行在大于或等于Rift的屏幕刷新速率上,非同步和没有缓冲。延迟和丢帧会导致抖动,这是令人不舒服的。

2、20ms或小于光移动延迟是理想的。组织你的代码以减小从传感器读取数据

3、随着时间的流逝,游戏延迟不是单一不变的而是多重复合的。SDK使用了一些技巧来隔离特效延迟,自始至终尽你所能去减小延迟。

4、使用SDK提供的前言追踪,为你的函数调用提供一个精确的时间参数。前言追踪在每个应用上必须调节,因为是在应用延迟上是多样的。

5、借鉴OculusRoomTiny的源代码(作为减小延迟的例子),在你的代码中应用适当的透视技术。

最优化

1、减小眼着色分辨率缓冲区来保存声音内存来增加帧率。

2、虽然降低显示分辨率看起来是一个好的增加性能的方法,但是眼着色分辨率缓冲区是最主要影响结果的。降低眼着色分辨率来维持显示分辨率可以改进性能(在视觉上效果上影响小比其他方法)。

头部追踪和视角

1、避免图像在用户的环境中混乱。旋转或者移动水平线或者其他大的用户环境组件是和现实世界矛盾的,也会让人感觉不舒服。

2、显示器会一直响应用户的移动,不带异常。即使在菜单中,当游戏暂停或者切换场景,用户都可以看到周围。

3、使用SDK的位置追踪和头部模式来确保虚拟照相机旋转和移动符合正常的头和身体运动,不符合会让人感到不舒服。

位置追踪

1、图片渲染必须立马响应用户的物理动作;而不是操纵虚拟的照相机移动来达到目的。整个的头部模式的全局缩放是好的,而不是缩放单独的瞳孔间的头部移动。

2、因为位置追踪,用户不能移动他们的视角去看这些地方,比如:物体下面,边界外,角落周围。考虑背面不能渲染等等。

3、在某一特定环境下,用户可以使用位置追踪通过裁剪虚拟环境(把他们的头通过一个墙或者一个物体中)。我们观察到用户趋向于当他们意识到这是一个物体时,避免把头穿过物体,除非这么做是为了开拓游戏设计。不管这些,开发者通过几何学可以计划处理照相机裁剪。一个解决问题的方法是触发一个消息来告诉他们需要留下照相机的追踪条(虽然他们的技术可以一直是在照相机椎体中)。

4、提示用户警告当他们到达照相机追踪条的边界和背部阴影一样,来让他们重定位来避免失去追踪。

5、我们推荐你不要离开Rift屏幕显示的虚拟环境,如果用户离开了照相机的追踪条,位置追踪就失败了。那是相当令人不舒服的因为场景褪色到黑或者照片细化在失去追踪之前。确定提供给用户反馈来指明会发生什么和如何修复他。

6、扩大或者不能位置追踪是令人不舒服的。避免做任何的可能,变暗屏幕或者至少保持追踪方向通过使用sdk的头部模式当位置追踪失效

加速

1、加速造成了你的视觉、感觉和眼前的场景的不匹配。减小持续的频率冲突。尽力使加速越短(最好是瞬间的)越少。

2、记住“加速”不是当你向前走的时候速度的增加;它适用于任何的用户的动作改变,不是在方向上和速度上。变慢、停止或转身当移动、站立、踏步或者推向一边等这些形式就是加速。

3、任何时候都让用户初始化和控制加速。震动、颠簸或者摇晃照相机对玩家来说是不舒服的。

运动速度

1、在VR中从一个固定的位置观看场景是最舒服的;然而,在场景中移动是必须的,用户在一个恒定的速率在场景中移动是舒服的。真实世界中的速度永远是最适合的。作为参考,人们走路的平均速度是1.4m/s。

2、在某些情景下用两点之间的远程端口代替它们之间的步行是值得尝试的,但是也可能是令人迷惑的。如果用远距传动,提供充足的视觉开端,用户可以维持他们的举动和保护他们的原始方位。

3、在一个方向上移动时看另一个方向可能是令人困惑的。尽量减小用户看向远离的方向,特别是当快速移动时。

4、避免垂直方向上的线性震动,0.2HZ就会令人感到不舒服,偏离垂直轴线上的旋转,0.3HZ就会让人不舒服。

摄像机

1、摄像机的快速放大和缩小会导致或加剧模拟器综合征(VR设备综合征),特别是头和摄像机运动一致的来回放大缩小。我们建议避免用剧烈的特效直到未来开发者和研发者发现了一个舒适的和友好的实现。

2、在第三人称内容中,关心加速和运动的参考资料仍然适用于摄像机不关阿凡达是怎么多的。此外,用户必须一直拥有观看周围的自由,这会让你的内容设计增加新的需求。

3、任何时候避免用欧拉角;四元数是更合适的。试着用你的摄像机测试直上直下的看。那应该一直是稳定的和始终如一的在你的头部方向。

4、不用使用“头部摇动”的摄像机特效,这些会造成一系列小的但是让人不舒服的加速。

管理和测试模拟器综合症

1、让一群公正的用户去测试你的内容来确保它让群众感到舒适。作为开发者,你是最差的测试人员。你重复的挖掘和熟悉Rift和内容使你受到模拟器综合症或者讨厌内容的较少影响比新用户。

2、人们对新的弊病和可见的诱导的移动弊病的响应和容忍在虚拟头戴设备中比电脑和TV屏幕真实的多。你的客户可能不会尽力通过一个过度紧张的体验,也不要期望他们会这么多。

3、考虑实现机制允许用户自己去调节视野强度体验。对于特殊的内容,调节的内容可能包含运动速度,加速大小或者显示器视野宽度。其他的设置就采取默认为了低强度的体验。

4、为了用户调节设置关联到模拟器综合症管理,用户可能希望改变在即用的设备上(比如:他们变得习惯于VR或者变得疲劳)。任何时候,允许用户不用重启游戏设备来改变设置。

5、一个引用的框架(例如天空盒不会响应输入控制的移动但是会扫描头部移动)的符合玩家真实世界中习惯的独立的视觉背景可以减少眼前的视觉冲突和增加舒适度。

6、高的空间频率影像(或者条纹、好的纹理)可以增加在环境中的动作感觉,导致不舒服。在环境(像:固体图案而不是有图案的表面)中使用或者提供纹理的选项为敏感的用户提供一个更舒适的体验

立体深度的度数(3D效果)

1、为了个人的现实主义和一个正确的所放过的世界,SDK支持用眼睛中间从用户轮廓来分割容器。

2、意识到来自于立体观测的感知深度对于近距离来说是敏感的,快速缩小距离。两个山之间的距离在场景中和两只笔在你桌子上的距离一样。

3、虽然增加虚拟摄像机之间的距离可以减少立体观测的景深,注意未预料到的边际效应。首先,这样会强迫用户聚拢他们的眼睛,如果你不移动对象远离摄像机因此会导致眼拉紧。其次,如果你缩放头部移动不等于你的眼分离会导致感知异常和不舒服。

用户接口

1、UI应该是3D虚拟世界的一部分,它离观察者2-3米远,即使简单的在用户前面的画出来的平坦的多边形、球体或者圆柱体。

2、在头戴设备中看UI时不要要求用户转动他们的眼睛。理想情况下,你的UI应该位于用户视野中间1/3处。另外,他们应该可以检测UI和头部运动。

3、当头部运动是要小心谨慎的移动或缩放(一个长菜单滚动或移动当你移动你的头部的时候)UI元素。确保他们能精确的响应用户的运动和简单的可读性(不带分心的动作或不舒服)。

4、努力整合你的接口元素作为3D世界的直觉上和沉浸式部分。例如:弹药数量应该显示在用户的武器上而不是在一个显示屏幕上。

5、作为目标对象应该将交叉线,十字线或光标画在同一个深度;另外,它可能会出现重影当眼睛聚合时它不在一个平面深度上。

控制具体化

1、当带上Rift时,用户看不到输入设备。允许使用熟悉的控制器作为默认的输入方法。如果一个键盘是绝对需要的,记住用户可能必须依赖触觉反馈来发现控制器。

2、考虑用头部运动作为一个直接的控制或者介绍敏感上下文的一种方式。

声音

1、当设计音频时,记住当用户带上头戴设备时输出源要跟上用户的头部移动,但不能是当他们说话时。允许用户在游戏设置中选择他们的输出设备,确保游戏中的声音从正确的位置传递出去。

2、NPC说话通过一个中间的声音频道或者左右声道是一个普通的实践,但是可能会打破VR的沉浸式。专业的声音,尽管是粗糙的,可能会增加用户的体验。

3、在声音设计中记住保持位置追踪。例如:当用户靠近声源时声音应该变大,尽管生源是固定的。

内容

1、距离,在真实世界中的一米相当于Unity中的一个单位距离。

2、当一个物体落在用户眼睛的0.75-3.5米的范围内,DK2 Rift的光线会让它看起来最舒服。虽然你的全部环境可能会占据任何范围的深度,用户会花费额外的时间去看落在这个范围内的物体。

3、比在舒适范围近的距离上看物体可能会导致眼睛的柔性焦距透镜组变离焦量、清晰的物体变模糊和眼睛眩晕。

4、对于敏感的用户,明亮的图片,特别是在周围边缘,可能会产生显而易见的闪烁;如果可能,使用比较暗的颜色来避免不舒适。

5、一个在VR中的用户身体的具体化表现可能有支持者和反对者。另一方面,它可以增加用户的沉浸式VR体验,对比玩家的表现的空洞实体。换句话说,在真实世界和虚拟世界中的差异可能会导致不能寻常的感觉(例如:看到一个虚拟的移动的身体当用户的身体一直待在椅子上)。考虑这些因素当设计的你的内容时。

6、考虑大小和你的艺术品的纹理在你工作在任何系统上,视觉分辨率和纹理混合是一个问题(避免正好是薄的的对象)。

7、注意你的用户有一个未预期的沉浸式水平,令人恐惧和惊慌的内容可能有一个意义深远的效果,以前的媒介不能有这样的效果。确定用户提前收到警告以让用户决定是否体验他们。

8、在你的内容中不要完全依靠立体3D效果来提供景深。灯光、纹理和视差和其他的视觉特征给用户传送同样重要的景深和空间。这开端景深可能由定向的和立体效果量级组成。

9、设计环境和交互来减小扫描、后退或旋转的需要,在VR中他们可能是不舒适的。

10、人们习惯上会移动他们的头/身体如果他们注视一个点的时候移动超过15-20度。避免强迫用户移动那么打的角度来预防肌肉疲劳和不适。

11、不要忘记用户会看向任何方向在任何时间;确保他们不会看到打破他们沉浸式场景的东西(例如在环境中的渲染中的技术欺骗)。

具体化外观

1、当创建一个体验时,你可能会选择玩家体验作为目标或者在身体中它是不通于他的或她的。例如,你可能有一个玩家与你自己的经验相互影响作为历史图片,虚构的字符,卡通片,龙,巨人,虎鲸,变形虫,或者任何其他众多的可能。就像其他的具体化一样从来
不会带来问题一样,你应该坚持最佳实践方针为了舒适度,和提供直觉上的控制。

2、当具体化代表玩家自己的时候在虚拟环境中,如果玩家向下看和看身体或者手(任何人都是不相同的),这回降低沉浸式。例如,一个女士的沉浸式感觉会被打破如果她向下看到一个男士的手或者身体。允许玩家自定义他们的手或者身体会引人注目的改善沉浸式体验。如果这会给你工程带来太多的复杂或者消耗,你可以采取措施来减小VR和真实世界中的矛盾。例如,避免明显的男性或女性特征在显示的具体化部分。手套和男女皆宜的衣服(符合你内容的主题)可以有助于维持不明确的具体化标示方面,像身体类型,皮肤颜色和性别。

安全和健壮性

仔细阅读和实现Rift的警告来确保健壮性和安全性为你、任何测试你内容的人和你的用户。

图片安全和图像抖动

1、某一特定类型的图片是被相信的来触发图像抖动在一小部分人群中,国际标准组织是处理开发一个图像标准内容来减少图像抖动。

你有责任来保持标准和文献上的图像抖动同步和图像安全和设计你的内容来符合标准和最佳实践在这些科目上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: