在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