Uploads%2farticles%2f10986%2fsamsung vr qantas airlines
|
2016-07-25

同样是 VR 盒子,GearVR 和国内山寨货怎么就差那么多?从余晖效应谈谈晕动症

作为一名 VR 从业人员,常有 VR 圈之外的朋友笔者吐槽说:国产的 VR 眼镜,看看静止的内容还可以,一旦动起来,人就各种晕眩,而 GearVR 等国外品牌的产品就没有出现这样的情况,这是为什么呢?

对于这个问题,笔者可以列出很多的原因,但是首先,也是最重要的一点,是需要大家纠正这样一个认识误区:VR 技术不是简单的两个显示屏+盒子。不少 VR 眼镜产品只是开发了一个手机盒子,并没有针对插入其中的手机进行软硬件的优化,自然很容易造成体验不佳,引发所谓的的晕动症(Motion Sickness)。

而关于晕动症,VR 大牛 Michael Abrash 有着他的思考。

Michael Abrash 是圈内首屈一指的图形程序员,他于 2014 年加入 Oculus 担任首席科学家,致力于头戴式可视设备(Head Mount Display 简称 HMD)研究,包括如何减少 HMD 在使用过程中带来的晕眩。具体来说,HMD 有许多伪影现象(artifacts),例如:色彩边缘(color fringing)、抖动(judder,也称视角震颤)、频闪(strobing)、拖影(smearing)等。伪影问题会带来眼脑协调不适,从而引发晕动症。所以,虚拟现实技术不是简单地把两块显示器放在眼前,然后放映图片那么简单。这篇文章是在 Michael Abrash 的三篇关于余晖(persistence)博文的基础上创作的,深入探讨了低余晖如何降低晕眩感,以及低余晖技术所带来的其他负面问题。

首先,什么是余晖效应呢?

换个词来说,余晖效应就是视觉暂留现象,是指人眼在观察事物时,光信号传入大脑神经需要一段短暂的时间,光信号消失后,视觉形象并没有立刻消失,这种残留的视觉影像成为「后像」。举一个简单的例子,中国古代的走马灯就是利用了这种现象。我们生活中也有余晖效应,比如观察一个白炽灯,当我们猛的转头后,白炽灯的灯光依然会映在我们眼前。

余晖与显示器有什么关系呢?

我们称显示器上的像素点被点亮的时间为余晖时间(persistence time)。我们现在用的液晶显示器就是全余晖显示器,因为像素点在每一帧都被点亮。那为什么在 HMD 中我们要选择低余晖呢?这就要从人眼和显示器上的虚拟图像间相对运动说起了。

为了帮助我们了解人眼和显示器上的虚拟图像间的相对运动,我们先来看一个简单的问题——色像差(color fringing,也称为彩色边纹或者色散现象)。

下图是一个很好的例子,我们可以清楚地看到图片有红绿蓝三种基色边缘,图片质量大幅下降。那么什么情况下这种问题会发生呢?

我们可以认为来自显示器的光子是一个三维信号,我们把这个三维信号量化为一个表达式:pixel_color = f(display_x, display_y, time)。这个表达式表示显示器上的光子的位置和它的余晖时间。

我们将用时间-空间图来帮助大家了解 HMD 头戴显示器与真实世界有什么不同(在这里我们忽略垂直分量 y)。

真实世界中的物体:

LCOS 色序显示器(经常被用来当做 HMD 的显示器)上的虚拟物品:

如果你看不懂以上的解释也没有关系,简单来说,由于色序显示器三种色彩分量不能被同时点亮,那么当人眼相对于显示器上的虚拟物品移动时,我们就会看到色散现象。这种现象是一个很好解决的问题,因为只要确保色彩分量同时点亮就可以了,所以我们选择更换显示器,Oculus 使用的就是 OLED 有机电激光显示器。

我们之所以把色散问题放在开头解释,是为了让大家更好地理解人眼和显示器的虚拟物品间的相对运动。这种相对运动还会带来抖动(视角震颤)、频闪、拖尾等伪影问题(频闪和拖尾的混合现象我们称为抖动)。

首先什么是拖尾呢?根据维基百科的解释,拖尾是在 VR 中对于动感模糊的视觉感知,它降低了图像锐度和细节。拖尾发生是因为像素点在被点亮时间内在视网膜上滑动了一段距离,点亮时间越长,滑动的距离就越长。换言之,当人眼与像素点有相对运动时,余晖时间越长,拖尾现象越明显。

其次什么是频闪呢?根据维基百科定义,频闪是指在 VR 中同一时间视觉感知到多张虚拟图像副本。当人眼观察虚拟图片位置从一帧到下一帧的位置超过 5-10 角分时,我们会感觉图像明显跳动,这种跳动就是频闪。注意频闪不是闪烁(flicker),闪烁是一种一亮一灭的现象,频闪是同一时间看到多张相同的图像。由于闪烁不涉及视觉暂留,在这里不做赘述。

而这两种现象的组合,我们称之为抖动。在 HMD 上,拖尾现象严重就会掩盖住频闪现象。下图是一张渲染的游戏场景,和这个场景拖尾 2 度(把手伸直,竖起大拇指,大拇指的宽度大概就是 2 度)的对比图。

如果你还是对频闪和拖影的产生抱有疑问,那我们继续来看看时间-空间图来帮助理解。

真实世界中的物体:

HMD 上的虚拟图像:

因为余晖效应,人眼可以保存上一帧,这一帧,甚至下一帧的图像。对于物体相对于眼睛从左到右移动(眼睛注视前方不动)这种情况,我们不会看到拖影现象,但是由于实际的刷新率,我们可能会看到频闪。对于眼睛追踪物体从左到右移动这种情况,因为每帧像素点都有滑动,所以我们看到了拖影现象。这时,如果我们人眼追踪不精准,虚拟图像没有落在视网膜相同位置上(也就是说x轴有位移),我们也会看到频闪,这就造成了抖动这种混合现象。

理解了这些伪影现象之后,我们想问的就是如何解决它。

第一个方法当然就是提高刷新率,让虚拟物品运动更加接近真实世界。请看下图:

那么问题来了,多高的刷新率才足够呢?

这个问题没有确定的答案,因为这个值与场景内容、分辨率、视场角 FOV、像素点填充、显示器类型、人眼移动速度、人眼特征等有关。这个值大概接近于 100Hz,200Hz 会是一个很大的提升,但是还不够。如果是一个 1080p 且有用 90 度 FOV 的显示器,可能需要 300 到 1000Hz 的刷新率,但是高频率要求更高的分辨率。一个 1000Hz 的显示频看起来足够好了,基本确定可以减少或者消除一些包括晕眩在内的 HMD 问题,因为它更加接近现实世界。但这不是一个百分之百肯定的结论,因为我们还从没见过一个 1000Hz 的头戴显示器,目前技术暂时也难以达到这个要求。

除了提高刷新率,还有其他方法可以消除抖动,那就是降低余晖时间。我们再来看几张对比图:

但是,解决了拖影,又引发了新的问题。

之前我们也提到了,在抖动的情况下,拖影隐藏了频闪效果。不看拖影,低余晖的显示器会造成频闪。然而低余晖的频闪看起来不是一个严重的问题,因为眼睛在完美跟踪图像时不会频闪,虚拟图像上的像素点会在每一帧落在视网膜的相同位置,所以没有帧到帧之间的图像位置相隔问题(造成频闪的原因)。但是,眼睛不可能追踪场景里的所有虚拟物品。

举一个例子,如果你在一个赛车场景里,周围有舞动的人群,但你的视线一直在追踪场景中的赛车,因为人眼追踪赛车,所以我们人眼和移动的赛车间没有相对运动,我们看不到频闪,但是场景中的其他部分,可能会出现频闪现象。再比如,如果你在玩一个游戏,让你在一个喧闹的街市场景中扫视寻找一个图标或者标志,这时场景中的物体会相对人眼产生距离,这个距离间隔大于 5-10 角分时,我们就会看到频闪。

频闪现象还没有被人们好好研究过,这个现象所引发的问题现在还没有被很好地解决, 其中涉及人体眼脑的合作机理。目前看来,Michael Abrash 发现了两个因素影响着这种视觉不稳定问题。一个是扫视遮蔽(saccadic masking,也称扫视抑制),另一个是参照系(frame of reference)。下面对这两个概念进行简单的解释。

对于人类来说,在频繁的快速扫视眼动中保持视知觉稳定十分重要。研究表明,伴随快速扫视会发生视觉敏感性降低的现象,即扫视抑制。扫视抑制对于形成稳定的视知觉具有重要作用,在我们扫视时,真实世界的图像会在我们的视网膜上滑动,但是低余晖使我们丧失了扫视抑制的功能,因为低余晖导致了虚拟图像在扫视过程中始终保持清晰,失去了滑动,这时频闪现象就会发生。

另一个因素是参照系,为了把视网膜接收到的信息转化为我们熟知世界的模型,无论什么时候眼脑都需要一个参照系(人脑预测被扫视的物品应该处于什么位置)。但是低余晖消除了拖尾,图像移动变的不连贯,所以人脑认为虚拟图像没有处在正确位置上。这时,我们就会感到视觉不稳定。

频闪带来的视觉不稳定性在游戏中不是一个很大的问题,也很少被检测出来。人脑的适应能力很强,有可能在未来的十几年慢慢适应这种问题,就像人配了一个新眼镜一样。HMD 研究已经有了许多突破性的发展,但是还有很多未知的问题等待我们去探讨。希望这篇文章可以让大家从视觉余晖的角度对晕动症有更多的了解,并且理解低余晖显示器的益处和缺陷。如果文章中有哪些不精准,不明确的解释欢迎大家积极讨论。

本文由深圳特约 布格VR 供稿 作者 张小朦

责任编辑 陈凯文

Uploads%2fusers%2favatar%2f1073144772%2fthumb img 6313
左一 2016-07-25 22:57

需要人去适应的科技最终都是会被淘汰的,科技应该不断适应我们人的需求。

>>
Back to top btn