Meta分享:Quest Pro眼動(dòng)注視點(diǎn)渲染的原理、實(shí)踐和應(yīng)用
查看引用/信息源請(qǐng)點(diǎn)擊:映維網(wǎng)Nweon
基于眼動(dòng)追蹤的注視點(diǎn)渲染功能Eye Tracked Foveated Rendering(ETFR)
(映維網(wǎng)Nweon?2023年02月17日)Meta在Connect 2022大會(huì)為Quest?Pro推出了基于眼動(dòng)追蹤的注視點(diǎn)渲染功能Eye Tracked Foveated Rendering(ETFR)。這種全新的圖形優(yōu)化可以利用眼動(dòng)追蹤,以高像素密度渲染注視點(diǎn)區(qū)域,并以低像素密度渲染外圍區(qū)域,從而為開發(fā)者節(jié)省了大量的GPU算力。同時(shí),ETFR的設(shè)計(jì)可以允許你在Unity和Unreal中輕松集成。
例如,《Red Matter 2》的開發(fā)者表示:““集成ETFR是一個(gè)無(wú)縫的過(guò)程,激活就像撥動(dòng)開關(guān)一樣簡(jiǎn)單。然后,我們的團(tuán)隊(duì)專注于最大化像素密度。結(jié)果令人印象深刻,像素密度增加了33%,相當(dāng)于光學(xué)中心渲染的像素增加了77%。ETFR和Quest Pro的Pancake透鏡組合提供了非常清晰的圖像。ETFR真正提升了游戲體驗(yàn)。”
下面這篇博文將進(jìn)一步介紹ETFR的工作原理,最佳實(shí)踐和常見問題解答,從而幫助你優(yōu)化Meta Quest應(yīng)用的圖形。
什么是ETFR?
固定注視點(diǎn)渲染Fixed Foveated Rendering(FFR)固定地在屏幕中心(又稱為注視點(diǎn)區(qū)域)渲染全像素密度,并在屏幕邊緣渲染低像素密度。至于ETFR,它可以利用眼動(dòng)追蹤數(shù)據(jù)來(lái)移動(dòng)需要渲染全像素密度地注視點(diǎn)區(qū)域。由于低像素密度區(qū)域始終隱藏在外圍視覺中,所以可以基于眼睛注視數(shù)據(jù)應(yīng)用更大膽的策略,相對(duì)較FFR節(jié)省更多的GPU算力。
工作原理
ETFR通過(guò)首先從眼動(dòng)追蹤攝像頭圖像計(jì)算用戶的注視方向,然后使用注視方向在應(yīng)用渲染管道中移動(dòng)高像素密度的注視點(diǎn)區(qū)域。

為了做到這一點(diǎn),Meta的Unity和Unreal集成實(shí)現(xiàn)了一個(gè)新的Vulkan擴(kuò)展:Tile Offset (VK_QCOM_fragment_density_map_offset)。通過(guò)指定像素偏移值,它允許重復(fù)使用相同的foveation map并平滑地移動(dòng)。如下面的動(dòng)畫所示,Tile Offset在移動(dòng)注視點(diǎn)區(qū)域時(shí)提供了更精細(xì)的控制,并避免了傳統(tǒng)方法中的閃爍偽影:
有Tile Offset

沒有Tile Offset
API架構(gòu)
相關(guān)的OpenXR?API是從現(xiàn)有的XR_FB_foveation框架(FFR使用的框架)擴(kuò)展而來(lái)。Meta的Unity和Unreal集成在后臺(tái)調(diào)用API,所以你不需要處理細(xì)節(jié)。原生VR應(yīng)用程序可以遵循相同的步驟來(lái)支持ETFR。
延遲優(yōu)化
在ETFR管道中,攝像頭傳感器和處理以與顯示器相同的幀速率運(yùn)行,并與渲染管道完全同步,以最小化眼睛運(yùn)動(dòng)和顯示時(shí)間之間的延遲。特別是,團(tuán)隊(duì)抵消了眼動(dòng)追蹤攝像頭的捕獲時(shí)間,從而最小化“眼動(dòng)追蹤器產(chǎn)生新的注視輸出”和“用于更新foveation map的注視輸出“之間的差距,如下面紅色框中顯示:
根據(jù)當(dāng)前渲染負(fù)載,UE4測(cè)試應(yīng)用程序中測(cè)得的端到端管道延遲在46到57毫秒之間。如果在logcat(adb logcat -s VrApi)中讀取類似的ETFRLat度量,你應(yīng)該會(huì)得到類似的結(jié)果。
限制和最佳實(shí)踐
ETFR是一個(gè)強(qiáng)大的工具,但它不是萬(wàn)能藥,可能不適合所有類型的應(yīng)用。如果你的應(yīng)用程序?qū)儆趂ragment-heavy片段密集型(例如,使用復(fù)雜的材質(zhì)或以非常高的分辨率渲染),ETFR會(huì)有巨大的幫助,因?yàn)樗鼤?huì)減少給定渲染過(guò)程中的片段著色執(zhí)行。所以如果你的程序?qū)儆趘ertex bound,所述工具不會(huì)提供太大的幫助。
另外,ETFR目前僅適用于你的眼睛緩沖區(qū)(主層),這意味著如果你使用其他合成器層,渲染和合成相關(guān)層的GPU成本將不會(huì)隨著ETFR而提高,僅會(huì)降低眼睛緩沖區(qū)的成本。
最終,你應(yīng)該決定如何以及何時(shí)使用這個(gè)工具,并確保徹底測(cè)試應(yīng)用程序。就像FFR一樣,低像素密度的外圍區(qū)域會(huì)導(dǎo)致閃爍,尤其是對(duì)于高對(duì)比度和復(fù)雜的幾何結(jié)構(gòu)。所以,你應(yīng)仔細(xì)選擇最大的foveation level,從而平衡性能和視覺質(zhì)量。
額外的GPU算力節(jié)省

Meta建議使用ETFR的額外GPU增益來(lái)增加渲染目標(biāo)大小,從而獲得更清晰和更塑形的圖像。以下是UE4測(cè)試應(yīng)用程序中以默認(rèn)和增加眼睛紋理大小渲染的FFR/ETFR的GPU渲染時(shí)間示例:

如上表所示,如果你的應(yīng)用程序現(xiàn)在正在使用FFR-3進(jìn)行渲染,你可以嘗試切換到ETFR-2,從而提高眼睛紋理分辨率,并使用MSAA-2以獲得更清晰的圖像。其中,GPU時(shí)間成本大致相同。
ETFR的GPU算力節(jié)省將取決于應(yīng)用程序的內(nèi)容,所以請(qǐng)確保以不同的foveation level和渲染目標(biāo)大小來(lái)配置應(yīng)用程序。
Dynamic Foveated Rendering動(dòng)態(tài)注視點(diǎn)渲染
Meta同時(shí)建議啟用Dynamic Foveated Rendering動(dòng)態(tài)注視點(diǎn)渲染,以便根據(jù)當(dāng)前GPU渲染負(fù)載自動(dòng)調(diào)整foveation level。最大foveation level可由“Foveated Rendering level”指定。在啟用這個(gè)選項(xiàng)之前,開發(fā)人員應(yīng)確保在最大foveation level下充分測(cè)試渲染質(zhì)量(例如,外圍視覺中的視覺偽影不能太多)。
開發(fā)人員工具包
ETFR現(xiàn)已支持SDK v49(Unity和Unreal)。
最后的想法
ETFR主要降低了像素吞吐量,并可能為未來(lái)的頭顯實(shí)現(xiàn)高PPD(像素/度)渲染。當(dāng)然,你最終需要平衡應(yīng)用程序的圖形復(fù)雜性、分辨率、MSAA和foveation level,在性能節(jié)省和視覺質(zhì)量之間進(jìn)行權(quán)衡。
Meta致力于為你提供更簡(jiǎn)單的圖形優(yōu)化和性能提升方法,而發(fā)布ETFR只是這一旅程的開始。下面是關(guān)于ETFR的常見問題解答。
ETFR是否需要OpenXR?
是的,只支持OpenXR,因?yàn)镸eta完全致力于支持未來(lái)的OpenXR API。例如在UE4中,請(qǐng)確保在“XR API”設(shè)置下選擇了“OpenXR OVRPlugin”。
ETFR是否需要Vulkan?
對(duì)于Meta的UE4/Unity ETFR集成,僅支持使用Vulkan+Multiview的應(yīng)用程序。由于缺少fragment density map和Tile Offset擴(kuò)展的支持,ETFR無(wú)法支持GLES。Meta建議所有UE和Unreal開發(fā)者在Quest應(yīng)用程序中使用Vulkan。
ETFR是一個(gè)‘要么用要么不用’的功能嗎?
不是,你可以在游戲引擎腳本level的任何時(shí)候打開/關(guān)閉ETFR或切換到FFR。例如,你可以嘗試在游戲主菜單中完全關(guān)閉ETFR,并僅在進(jìn)入游戲場(chǎng)景時(shí)打開ETFR。
如何處理眼動(dòng)追蹤許可?
用戶第一次使用ETFR打開應(yīng)用程序時(shí),系統(tǒng)將顯示一個(gè)權(quán)限提示,請(qǐng)求用戶接受眼動(dòng)追蹤權(quán)限。如果權(quán)限被拒絕,應(yīng)用程序?qū)⒒赝说紽FR渲染,但是,你可以選擇在游戲引擎腳本level以不同的方式處理回退邏輯。
請(qǐng)注意,用戶可以隨時(shí)選擇在通用菜單中暫停眼動(dòng)追蹤,在系統(tǒng)設(shè)置中禁用眼動(dòng)追蹤,或取消眼動(dòng)追蹤權(quán)限。
---
原文鏈接:https://news.nweon.com/105217