时间扭曲和异步时间扭曲
大家都知道,大部分的显示器和绝大部分的手机屏幕的刷新率都是60Hz,也就是说,在理想情况下我们的显示设备大概要在每秒处理60帧的画面,也就是说从数据到渲染就有1000/60≈16.6666ms的时间延迟。那么,如何抵消这个时延呢?John Carmack提出一种方法:通过大量采集陀螺仪数据,在样本足够多的情况下,就可以预测出16.67ms后你头部应有的旋转和位置,按照这个预测的数据来渲染,他管这个技术叫时间扭曲。
帧延迟
时间扭曲说白了就是一种图像帧修正的技术,它通过扭曲一副被送往显示器之前图像,来解决这个16.67ms的延迟。最基础的时间扭曲是基于方向的扭曲,这种只纠正了头部的转动变化姿势,这种扭曲对于2D图像是有优势的,它合并一副变形图像不需要花费太多系统资源。
然而问题又来了,一般的VR场景很复杂,我们很难保证每次都在16.67ms内完成一次渲染,也就是说我们很难保证每个应用都是60fps。于是John Carmack又提出一个技术,就是上文我们所说的异步时间扭曲。说专业点,异步时间扭曲是指在一个线程(称为ATW线程)中进行处理,这个线程和渲染线程平行运行(异步),在每次同步之前,ATW线程根据渲染线程的最后一帧生成一个新的帧。可以这么说,无论你当前游戏的fps是多少,画面始终被设计成保持在60fps(视刷新率而定),这样就不会产生画面抖动了。
以上就是ATW技术的核心细节,即把时间扭曲和帧缓冲分离,用高刷新率的时间扭曲来换取低时延。事实上,这项技术在一年前便已经运用于三星的GEAR VR中,但PC的VR设备在运用这项技术的时候遇到一些挑战,致使这项技术在今年Q1尾声才被Oculus宣布支持。Oculus团队表示,将继续与微软、NVIDIA、AMD进行密切的合作,以优化Windows对Rift的支持。
推荐经销商