虚拟现实头盔的刷新率和延迟有什么关系?

 

假设我们在每帧开始的时候(上一次垂直同步结束)采样一次传感器数据,在垂直同步之前完成提交,那延迟就是16.67ms;

如果当前帧无法在16。67ms内完成渲染,比如花了17ms,那么就会拖到下一帧进行提交,屏幕上显示的画面就还是上一次的图像,这时候的延迟就变成了16.67*2=33.33ms。

这就对VR的渲染提出了非常高的要求:

FPS必须达到刷新率的要求,90Hz就是90Hz,80FPS是不行的,会被垂直同步拖累成45FPS;

FPS必须保证稳定,偶尔掉一两帧在VR中的感觉非常明显,可能某个物体的位置已经差了几十个像素了。

以Oculus Rift(消费版)为例,1080x1200x2的屏幕分辨率,90Hz的刷新率,再加上因为变形所需要的UpSampling,实际的渲染画面就是3024×1680@90Hz,这性能压力几乎与4k@60Hz相当。所以,单纯的提升刷新率和分辨率,目前来说渲染能力还是跟不上。不过既然有了性能需求,硬件厂商才有前进动力,对整个行业生态来说,是件好事。

引擎层面的优化

除了拼命优化降低每帧画面的渲染时间外,引擎层面还可以通过一些策略进行优化,关键的思路就是: 能不能把采样传感器数据的时间点尽量延后,让它与垂直同步的时间点尽量靠近?

这里我们仍然假设60Hz,每帧时间16.67ms(约17ms),忽略硬件延迟

 

如果在游戏逻辑过程中(1ms时)采样传感器数据,那延迟大约就是16ms