舒适感
在自然观景过程中,人类视觉系统依赖多个信息源(称为“线索”)来解释 3D 形状和对象的相对位置。 某些线索仅依赖于单只眼睛(单眼线索),这些线索包括:
还有一些线索依赖于两只眼睛(双眼线索),这些线索包括:
为了确保头戴式显示器的舒适度最佳,请务必以一种模拟自然世界线索的方式来创建和展示内容。 从物理角度看,设计出不需要使颈部或手臂疲劳的内容也很重要。 本文将会讨论实现这些目标所要注意的重要事项。
视觉辐辏-调节冲突
若要清楚地观看对象,人们必须根据对象的距离调节(或调整)其双眼的焦点。 同时,双眼的旋转角度必须根据对象的距离收敛,以免看到重影。 在自然观景中,视觉辐辏和调节是相互关联的。 观看近距离的对象(例如,鼻子旁边的家蝇)时,双眼将会对视并调节到一个较近的点。 相反,如果观看无穷远的对象(在正常视场中大约 6 米或更远),双眼的视线将变得平行,而眼睛的晶状体会调节到无穷远。
使用大多数头盔式显示器时,用户始终会调节到显示器的焦距距离以获取清晰的图像,但会收敛到相关对象的距离以获取单个图像。 当用户调节和收敛到不同的距离时,两个线索之间的自然关联中断,导致视觉不适感或疲劳。
全息设备指导
HoloLens 显示器固定在大约距离用户 2.0 米的光学位置。 用户必须始终调节大约 2.0 米才能保持在设备上看到清晰的图像。 应用开发人员可以通过在不同的深度放置内容和全息影像,来引导用户进行眼睛收敛。 通过将用户双眼收敛后观看到的内容尽可能地保留在 2.0 米的位置,可以避免或最大幅度减轻视觉辐辏-调节冲突造成的不适感。 例如,在具有许多深度的场景中,将兴趣区域尽量放置在距离用户 2.0 米的位置。 如果无法将内容放置在靠近 2.0 米的位置,当用户的视线在不同的距离之间来回切换时,视觉辐辏-调节冲突造成的不适感最强烈。 换言之,观看 50 厘米远的静态全息影像,比观看 50 厘米远的前后不断移动的全息影像要舒适得多。
全息影像与用户之间的最佳距离
有关 HoloLens(第一代)和 HoloLens 2 的最佳做法
为获得最大舒适感,全息影像的最佳放置区域为 1.25 米到 5 米的位置。 在每种情况下,设计人员都应尝试构建好内容场景,以鼓励用户在距离内容 1 米或更远的位置来与内容交互(例如,调整内容大小和默认位置参数)。
尽管内容有时需要在短于 1 米的位置显示,但我们不建议在短于 40 厘米的位置渲染全息影像。因此,我们建议在 40 厘米位置淡出内容,并将渲染裁剪平面放在 30 厘米的位置,以避免任何更靠近的对象。
由于视觉辐辏-调节冲突,在深度上发生改变的对象比静态对象更容易产生不适感。 同理,要求用户在近焦和远焦之间快速切换(例如,弹出要求直接交互的全息影像)可能会导致视觉不适感和疲劳。 应采取额外的措施来最大限度地减少用户的以下动作频率:观看在深度上发生改变的内容;在近距和远距全息影像之间快速切换焦点。
HoloLens 2 和近距交互的其他注意事项
在 HoloLens 2 中设计直接(近距)交互内容时,或者在必须将内容放在 1 米附近的任何应用程序中,应采取额外的措施来确保用户舒适感。 随着视距的降低,视觉辐辏-调节冲突造成的不适感会呈指数级提高。 此外,在近距交互距离观看内容时,用户遇到的模糊度可能会提高,因此,我们建议测试在全息影像最佳放置区域渲染的内容以及更近距离(与裁剪平面相距不到 1.0 米)渲染的内容,以确保影像清晰,让用户舒适观看。
建议根据用户观看近距内容(短于 1.0 米)和深度改变内容的预期时长,来为应用创建“深度预算”。 例如,在超过 25% 的时间避免让用户观看此类内容。 如果超出深度预算,我们建议谨慎进行用户测试,以确保用户仍可获得舒适的体验。
一般情况下,我们还建议进行谨慎的测试,来确保近距交互的任何交互要求(例如,移动速度、可接触性等)让用户感到舒适。
沉浸式设备指导
适用于 HoloLens 的指导和最佳做法仍适用于沉浸式设备,但对于后者,舒适区域的特定值根据与显示器之间的焦距而改变。 与这些显示器之间的焦距一般为 1.25 米到 2.5 米。 如有疑问,请避免在过于靠近用户的位置渲染相关对象,而是尝试将大部分内容保留在 1 米或更远的位置。
瞳孔间距和垂直偏移
在头盔式显示器 (HMD) 上观看数字内容时,观看者的眼睛与数字内容显示位置之间的相对位置至关重要。 具体而言,瞳孔间距 (IPD) 和垂直偏移 (VO) 对于舒适观看 HMD 中的数字内容非常重要。
IPD 是指眼睛瞳孔或中心之间的距离。 VO 是指相对于观看者眼睛的横轴,在每个眼睛中显示数字内容的潜在垂直偏移量(请特别注意,这不同于水平偏移或双眼视差)。 如果其中的一项或两项因素对于单个用户不相符,视觉辐辏-调节冲突造成的不适感可能会恶化,甚至在最小化视觉辐辏-调节冲突(例如,在距离 HoloLens 的 2.0 米焦距处显示内容)之后,也可能会造成不适感。
全息设备指导
HoloLens(第一代)
对于 HoloLens(第一代),在设备校准过程中会估算和设置 IPD。 对于使用已设置的设备的新用户,必须运行校准,否则必须手动设置 IPD。 VO 完全取决于设备装配。 具体而言,若要最小化 VO,设备需固定在用户的头部,使显示器与用户眼睛的轴齐平。
HoloLens 2
对于 HoloLens 2,将在视线/设备校准过程中估算和设置 IPD。 对于使用已设置的设备的新用户,必须运行校准,以确保正确设置 IPD。 HoloLens 2 会自动处理 VO。
沉浸式设备指导
Windows Mixed Reality 沉浸式 HMD 不会自动校准 IPD 或 VO。 可以在软件中手动设置 IPD(在混合现实门户设置中进行设置,具体请参阅校准);某些 HMD 提供一个机械滑块,让用户将透镜间距调整到大致与 HMD 的 IPD 相匹配的舒适位置。
渲染速率
混合现实应用之所以独特,是因为用户可以在场景中任意移动并与虚拟内容交互,就如同它们是真实对象一样。 为了保持这种印象,在场景中稳定渲染全息影像并顺畅地展示其动画效果至关重要。 以最小 60 的每秒帧数 (FPS) 渲染可帮助实现此目标。 某些混合现实设备支持以高于 60 FPS 的帧速率渲染,对于这些设备,我们建议以较高的帧速率渲染,以提供最佳用户体验。
深入探讨
要绘制在真实或虚拟世界中保持稳定的全息影像,应用需要从用户的立场呈现图像。 由于图像渲染需要一定的时间,HoloLens 和其他 Windows Mixed Reality 设备将会预测当图像显示在显示器中时用户头部的位置。 此预测算法采取近似值。 Windows Mixed Reality 算法和硬件会调整渲染的图像,以考虑到预测头部位置与实际头部位置之间的偏差。 此过程会使用户看到的图像如同从正确的位置渲染,同时使全息影像给人以稳定感。 这种更新最适合对头部位置进行轻微的更改,无法完全考虑到渲染图像的某些差异,例如运动视差造成的差异。
以最低帧速率 60 FPS 进行渲染,可在两个方面帮助绘制稳定的全息影像:
- 减轻视觉上的抖动,其特征是运动不均衡和重影。 全息影像运动速度越快且渲染速率越低,抖动就越明显。 因此,努力保持 60 FPS(或设备的最大渲染速率)可帮助避免运动中全息影像的抖动。
- 最小化总体延迟。 在以一致步调运行游戏线程和渲染线程的引擎中,以 30FPS 运行可能会额外增加 33.3 毫秒的延迟。 减小延迟会降低预测误差,并提高全息影像的稳定性。
性能分析
可使用如下所述的不同工具来对应用程序帧速率进行基准测试:
- GPUView
- Visual Studio 图形调试器
- 3D 引擎中内置的探查器,例如 Unity 中的 Frame Debugger
自我运动和用户位移
唯一的限制是物理空间的大小;若要允许用户在虚拟环境中的移动距离比其在实际房间中的移动距离更远,必须实现某种形式的纯虚拟运动。 但是,保持与用户实际身体运动不相符的虚拟运动往往会造成晕动症。 造成这种后果的原因是,虚拟世界中自我运动的视觉线索与真实世界中自我运动的前庭线索有冲突。
幸运的是,有关实现用户位移的一些技巧可帮助避免此问题:
- 始终让用户控制其运动;意外的自我运动容易造成问题
- 人类对重力方向非常敏感。 因此,特别应该避免非用户发起的垂直运动。
全息设备指导
在大型虚拟环境中允许用户移到另一位置的方法之一是,让他们产生一种在场景中移动小型对象的印象。 可按如下所述实现此效果:
- 提供一个界面,用户可在其中选择要在虚拟环境中移到的一个点。
- 选择后,将场景渲染收缩到环绕所需点的圆盘中。
- 在选择该点的情况下,允许用户像移动小型对象一样移动该点。 然后,用户可将所选内容移到靠近脚部的位置。
- 取消选择后,恢复渲染整个场景。
沉浸式设备指导
上述全息设备方法在沉浸式设备中也不起作用,因为沉浸式设备要求应用在移动“圆盘”的同时渲染一个较大的虚空黑块或另一默认环境。 这种处理会干扰用户的沉浸感。 使用沉浸式头戴显示设备时,实现用户位移的一项技巧是“闪烁”方法。 此实现方案可让用户控制其运动,并提供短暂的位移印象,但这种印象非常短暂,以致用户察觉不到纯虚拟自我运动造成的失位感:
- 提供一个界面,用户可在其中选择要在虚拟环境中移到的一个点。
- 选择后,开始朝向该位置进行快速的模拟(100 米/秒)动作,同时快速淡出渲染。
- 完成平移后,重新淡入渲染。
抬头显示器
在第一人称射击视频游戏中,抬头显示器 (HUD) 可在屏幕上持续显示玩家生命状态、微型地图和道具库存等信息。 HUD 可以在不破坏游戏体验的情况下很好地让玩家了解当前信息。 在混合现实体验中,HUD 可能会导致严重的不适感,必须经过调节才能更符合沉浸式上下文。 具体而言,朝用户头部方向紧锁的 HUD 可能产生不适感。 如果某个应用需要 HUD,我们建议锁定在身体上,而不要锁定在头部。 要实现这种处理,可以采用一组能够即时根据用户位置平移的显示器,但在达到旋转阈值之前,这些显示器不会随用户的头部一起旋转。 实现这种旋转后,HUD 可以重新定向,以便在用户视场中显示信息。 避免实现相对于用户头部运动的 1:1 HUD 旋转和平移。
文本清晰度
最佳的文本清晰度有助于减轻眼睛酸痛并维持用户舒适感,尤其是在需要用户在使用 HMD 的情况下进行阅读的应用程序或方案中。 文本清晰度视各种因素而定,包括:
- 显示属性,例如像素密度、亮度以及对比度。
- 透镜属性,例如色像差
- 文本/字体属性,例如粗细、间距、衬线以及字体/背景颜色。
一般情况下,我们建议在特定的应用程序中测试清晰度,并在可行的情况下尽可能地调大字体,从而提供舒适的体验。 可以在我们的版式和 Unity 中的文本页面中找到有关全息和沉浸式设备更详细的指导。
全息帧注意事项
对于包含大型对象或大量对象的混合现实体验,请务必考虑与内容进行交互所需的头部和颈部运动幅度。 就头部运动而言,可以将体验分为以下三个类别:
- 水平(从一边到另一边)
- 垂直(上上下下)
- 沉浸式(同时包含水平和垂直运动)
在可能的情况下,请将大多数交互限制在水平或垂直类别中,理想情况是使大部分体验发生在全息帧的中心位置,而用户的头部也正处于中间位置。 避免使用导致用户需要不断将视野移向非自然头部位置的交互(例如总是抬起头来访问关键的菜单交互)。
内容所处的最佳区域为水平视线下方 0 度到 35 度
水平的头部运动被更多用于频繁的交互,而应该将垂直运动留给不常见的事件。 例如,涉及到需要进行较长时间的水平头部运动的体验应限制将垂直的头部运动用于交互(例如向下查看菜单)。
请考虑通过将对象放置在用户空间的周围而不仅放置在头部运动范围来鼓励全身运动。 需要移动对象或移动大型对象的体验应格外注意头部运动,特别是当头部需要沿水平轴和垂直轴进行频繁运动时。
视线方向
为了避免眼睛和颈部酸痛,设计的内容应避免过多的眼睛和颈部运动。
- 避免视线角度超过地平线向上 10 度(垂直运动)
- 避免视线角度超过地平线向下 60 度(垂直运动)
- 避免颈部旋转角度超过中心 45 度(水平运动)
最佳(静止)视线角度被视为水平向下 10-20 度,因为头部往往会略微下倾,尤其是在活动期间。
手臂位置
如果用户在整个体验过程中都要抬手,则肌肉疲劳可能会累积。 如果用户在长时间内需要反复执行隔空敲击手势,也可能会产生疲劳感。 因此,我们建议在体验中避免反复不断的手势输入。 若要实现此目标,可以引入短暂的休息,或者允许混合使用手势与语音输入来与应用交互。