在Connect 2022上,Meta发布了Quest Pro,并首次在VR中引入动态注视点渲染(ETFR)功能,这是一种新型图形优化技术,特点是以用户注视点为中心,动态调节VR屏幕的清晰度(注视点中心最清晰、像素密度高,周围边缘清晰度低,像素密度低),好处是在节省GPU运算量的同时,也保持了足够清晰的VR观感。
自ETFR功能推出后,陆续有多款VR游戏支持该功能,比如《Vertical Robot》、《Red Matter 2》等等。据悉,《Red Matter 2》由Vertical Robot开发,该作登陆Quest Pro后,像素密度比之前提升了33%(等同于视觉中心的像素数量增加了77%),文字清晰度、光影和色彩表现足够优秀,突破了Quest头显的图形极限。
Vertical Robot指出:在《Red Matter 2》中激活ETFR功能很简单,随后只需要考虑如何提升VR游戏的像素密度,以及测试效果。结果发现,该作在Quest Pro上画质非常清晰,真正提升了游戏体验。什么是ETFR
我们知道,Quest头显支持固定注视点渲染(FFR),虽然也是在视觉中心渲染高分辨率,在周边渲染低分辨率画面,但视觉中心的位置基于你转头的方向,而不会跟随注视点移动而实时变化。
相比之下,ETFR基于实时眼球追踪技术,清晰区域跟随眼球运动,因此可以进一步缩小高分辨率区域,比FFR节省更多GPU算力。
开启Offset
ETFR是怎么实现对VR画面动态渲染的呢?原来,Meta为Unity和Unreal引擎开发了专门的Vulkan扩展插件:Tile Offset(分块补偿),该插件可指定像素补偿值,并设定注视点贴图(也就是视觉中心和余光区域的比例),这个注视点贴图支持重复使用、平滑运动,可以根据注视点变化,进一步调整图像清晰度。Tile Offset还有一个好处,就是避免了图像分辨率每次更新时可能产生的闪烁问题。
关闭Offset OpenXR API
Meta指出,Quest正在全面支持OpenXR API,因此ETFR功能也仅支持OpenXR标准。因此UE4开发者需要在引擎中选择OpenXR OVRPlugin插件,才能接入ETFR API(由FFR所使用的框架XR_FB_foveation扩展而来,现在是一个基于OpenXR的API)。
ETFR API的特点是,可在Unity、Unreal的Quest集成工具(v49版开始)后台调用API,开发者无需处理细节。不管是原生VR游戏,还是移植VR游戏,都可以在游戏引擎中开启ETFR功能。 优化延迟
不管是眼球追踪还是注视点渲染,这些过程都具有一定延迟,分别在多个步骤中产生,比如摄像头读取、眼球追踪、渲染线程、GPU渲染、显示等过程。
Meta为了降低ETFR渲染管道的延迟(从注视点运动到显示屏响应的时间),将相机传感器和处理器的刷新率设置为和显示屏相同,并且和渲染管道完全同步,此外,还抵消了眼球追踪相机的数据捕捉时间,从而缩短从捕捉到眼球信息到输出注视点贴图的时间。
经过测试,在UE4应用中运行ETFR的端到端延迟大约在46到57毫秒之间,具体数据根据当前的渲染负载变化。值得注意的是,ETFR还支持预测眼球运动,Meta测试了多种眼球运动,均获得不错的视觉体验。 有哪些局限?
尽管ETFR可以有效提升VR图像质量,但不一定适合所有类型的内容。Meta指出,如果VR应用使用大量复杂的材质,或是渲染分辨率很高,那么使用ETFR的效果会很好,可以将给定渲染通道的片段着色次数减少(此类应用通常受到像素限制)。然而,如果VR应用受到顶点限制(vertex),那么ETFR的作用不大。
此外,ETFR目前仅应用于眼睛缓冲区(主层),如果使用额外的合成器层,那么ETFR也无法优化渲染、合成这些涂层的GPU成本。也就是说,它只能改善眼睛缓冲区的渲染成本。
Meta建议,开发者应该根据VR应用类型去使用ETFR,并确保测试效果稳定。ETFR也存在和FFR一样的缺点,比如低像素密度的外围区域可能产生闪烁,尤其是在渲染高对比度、复杂的结合形状时,因此开发者需要尽可能扩大中心清晰区域的范围,更好的平衡性能和视觉质量。 进一步优化GPU
注视点渲染功能节省了部分GPU算力,这些算力可进一步提升中心区域的清晰度。Meta宣称,这样可以将渲染分辨率提升至1872x2048(像素数量提升至111%),而中心视觉区域的PPD可达15.5,整体效果要比FFR更好。
不过,ETFR能节省多少GPU算力还取决于应用内容,因此需要开发者经过测试来验证最佳参数组合,确保余光区域没有明显视觉伪影。
总之,ETFR的主要用途是减少VR渲染所需的像素数量,并尽可能平衡性能和视觉质量,提升中心视觉的PPD,以及优化图形复杂性、分辨率、MSAA(多重采样抗锯齿)等级、注视点区域范围等方面。该功能可作为FFR等图形/性能优化工具的一个补充,根据VR应用的类型和需求来选择是否开启。此外,也可以在游戏主菜单、游戏场景分别独立开启/关闭ETFR。
参考:Meta