Oculus首席科学家Michael Abrash的演讲:虚拟现实所存在的3大难点
Abrash是计算机图形界的泰斗,他的《Zen of Graphics Programming》曾影响了整整一代的程序员。18年前,他与John Carmack合力完成了世界上第一个3D图像引擎,将真正的3D世界带到了计算机上。上个月月底,Abrash加入了Oculus成为首席科学家,与担任Oculus CTO的Carmack再次双剑合璧。以下是Abrash在2013年游戏开发者大会(GCD)上的演讲,主要介绍了实现VR的一些难点。
为了方便读者,先在这里给出一些名词解释。
VR:虚拟现实 RR:真实现实 VR的虚像:VR在现实世界中对应的像,并不存在,具有观察者主观感受上VR中的像应该存在与RR的位置,大小,和与观察者所成角度等因素。
Abrash在演讲之初表达了对VR的乐观,认为VR会像当年的3D图像引擎一般给计算机界带来一场革命,然后他提到了现在VR主要存在3个技术上的难点。
VR的虚像必须固定在特定位置
VR首先要解决的问题是,不论头部怎样移动,VR给出的画面都要让用户的大脑认为相同的物体出现在了相同的地点。如果VR的虚像位置与大脑预计的物体应该出现的位置稍有偏差,大脑便会告诉我们,“这不是现实”。
这说起来容易,实际上却极为困难。首先是角度问题。由于显示屏是平面的,当用户头部转动,那之前的物体则需要出现在屏幕上不同的位置。比如在下图中,三角形代表某VR的虚像,当用户转头20°后,它出现在了屏幕上不同的位置。
其次是景深的问题。在VR中,每个物体的虚像与观察者的距离构成了其景深,两个一样大小的物体在景深不同的情况下,如果观察者的头部转动同一角度,在屏幕上的位移是不一样的。也就是说每次头部转动,每个景深上(或者说每个像素点)的物体都要被以代入不同的角度值重新计算。
追踪必须精确
要让VR世界中的虚像都出现在相同的位置,首先需要保证设备对观察者的追踪是准确的。也就是说设备要能准确的追踪头部转动的角度,或者发生的位移,才能通过算法改变屏幕上的图像使VR中的虚像固定在相同位置。那需要多准确?Abrash认为要达到2米外能辨别一毫米的移动这种级别的追踪才叫“足够精准”,然而这种级别的追踪设备目前并不是消费者可以承受的。
延迟必须降到最低
事实上,VR设备遇到的最麻烦的问题是延迟,Arash通过一些空间—时间表来说明延迟所会带来的问题。
在上图中,x轴是距离,y轴是时间。我们可以看到,随着时间增长,距离并没有变化。这被用来表示RR中一个静止的物体。
在上图中,随着时间的增长,物体作出了位移。这表示RR中一个移动的物体。明白?接下来我们要进入VR的世界了。
这张图表示VR中一个移动的物体。因为屏幕每刷新一次,物体才会产生位移,所以这张时间—空间图出现了折线:VR的虚像会在相同位置停留一段时间,在下一次刷新后产生位移。不过因为刷新的频率很快,所以我们的大脑还是会认为VR世界中的虚像产生的是连续位移。理解?那我们继续。
这是VR中更细节的情况,每个像素实际上可以发出三原色的光,在这张图的情况中,三种颜色维持的时间相同,所以最后观察者眼中的场景是一个白色的物体产生位移。(如果背景不是白色)
前几张图中,我们都假设观察者是静止的。现在我们让观察者的头从左向右快速转动,在以观察者为静止点转换坐标系后,结果如上图所示。我们发现一个像素上,单次刷新的三种颜色的光并不会被投射到观察者视网膜上相同的位置。
通过上图我们可以看到,这样的结果是这个像素的左方会是蓝和绿所合成的青色,右方则是红和绿合成的黄色,只有中间是白色。
上图则是无数个像素组合在一起时,观察者快速移动头部所带来的抖动。当然,这并非无法避免的,只要屏幕刷新的够快,那么上图的抖动便会消失。Abrash认为1000~2000次每秒的刷新频率也许能解决这个问题。现在的游戏一般以每秒60帧刷新,也就是VR屏幕的刷新频率要达到现代游戏的刷新频率提升17~33倍才可能解决这个问题。
最后Abrash就VR在未来的发展提出了一些展望并结束了演讲。
从Abrash的 博客 我们可以看到,他从2012年就开始把头戴式VR设备作为自己研究的主要领域,Oculus显然也注意到了Abrash的这次演讲,并在Carmack的带领下提出了一些 对策 。现在Abrash和Carmack再次齐聚一堂,他们还能创造当年的Quake 3D引擎那样的奇迹吗?我们拭目以待。
Abrash的演讲PPT完整版 下载 。
对VR感兴趣,以及喜欢计算机视觉技术的同学可以发邮箱与我交流,我的邮箱是ganyuan@36kr.com。