【XR】ATW
异步时间扭曲(Asynchronous Timewarp,简称ATW)是一种在虚拟现实(VR)技术中使用的算法,它通过生成中间帧来减少因帧率不足导致的抖动和延迟,从而提高用户体验。ATW技术在两个线程中完成时间扭曲的工作,一个线程负责渲染场景(Rendering Thread),另一个线程负责时间扭曲(ATW Thread)。在每一个垂直同步(VSYNC)之前,ATW线程根据渲染线程生成的最新一帧图像,进行时间扭曲生成新的一帧图像,然后显示出来。这种技术使得不论游戏的帧率如何,Timewarp始终被设计成保持在60fps,从而减少感知到的延迟。
ATW的核心在于将时间扭曲(Timewarp)与产生Framebuffer分离,用高刷新率的Timewarp来换取低延迟。在执行中,由于第一次垂直同步时Frame N的渲染尚未完成,此时会调用经由前一帧渲染的ATW帧进行插入,而第二次时钟同步时Frame N已完成渲染,直接扫描输出,在这种情况下,一倍的渲染对应两倍的垂直同步,帧率可以在低渲染计算下得以保持。
此外,ATW技术还可以在画面渲染的同时追踪用户的头部动作,并将最后一个完整的画面二次投影到用户最后一个头部位置对应的视点上。这能确保在系统不能够及时完成新一帧完整画面的渲染时,头显内依然显示最新的画面。通过这种方式,ATW有助于降低延迟及减少因丢帧造成的图像抖动,提高VR头显画面质量。