meta 近日宣布,將為旗下 Quest 頭顯的 Horizon OS 系統(tǒng)引入一項(xiàng)名為 frameSync 的全新幀時(shí)間調(diào)度算法。該算法旨在通過(guò)優(yōu)化畫(huà)面渲染流程,顯著提升 VR 體驗(yàn)的流暢度與穩(wěn)定性,同時(shí)減少卡頓現(xiàn)象,為用戶(hù)帶來(lái)更沉浸的虛擬現(xiàn)實(shí)體驗(yàn)。
在傳統(tǒng) VR 游戲或應(yīng)用中,系統(tǒng)通常采用固定延遲渲染方式。這種方式會(huì)盡早啟動(dòng)幀渲染,以確保畫(huà)面在屏幕刷新時(shí)準(zhǔn)備就緒。然而,由于頭部追蹤數(shù)據(jù)可能已相對(duì)過(guò)時(shí),這種延遲可能導(dǎo)致玩家出現(xiàn)暈動(dòng)癥狀,影響整體體驗(yàn)。
此前,Quest 頭顯使用的是 Phase Sync 幀時(shí)間調(diào)度算法。該技術(shù)首次亮相于 Quest 2 時(shí)代,最初作為開(kāi)發(fā)者可選功能,后逐步集成至系統(tǒng)。其核心目標(biāo)是降低“運(yùn)動(dòng)到光子延遲”,即用戶(hù)動(dòng)作與畫(huà)面更新之間的時(shí)間差。通過(guò)預(yù)測(cè)渲染所需時(shí)間并智能延遲渲染開(kāi)始時(shí)機(jī),Phase Sync 實(shí)現(xiàn)了頭顯追蹤數(shù)據(jù)與渲染畫(huà)面的同步,有效減少了延遲感。
然而,Phase Sync 算法存在一定局限性。它主要基于最近幾幀的渲染情況進(jìn)行簡(jiǎn)單預(yù)測(cè),當(dāng)場(chǎng)景復(fù)雜度突然變化時(shí),例如玩家從簡(jiǎn)單場(chǎng)景快速轉(zhuǎn)向復(fù)雜區(qū)域,渲染負(fù)載的增加可能導(dǎo)致掉幀。若此類(lèi)情況頻繁發(fā)生,系統(tǒng)甚至?xí)詣?dòng)禁用該算法,轉(zhuǎn)而采用固定延遲模式進(jìn)行渲染。
針對(duì)這一問(wèn)題,meta 推出的 frameSync 算法采用了更為穩(wěn)健的統(tǒng)計(jì)預(yù)測(cè)系統(tǒng)。該系統(tǒng)不再僅依賴(lài)最近幾幀數(shù)據(jù),而是綜合更多因素進(jìn)行判斷,從而實(shí)現(xiàn)了更精準(zhǔn)的預(yù)測(cè)。meta 聲稱(chēng),這種預(yù)測(cè)方式幾乎無(wú)需回退至固定延遲模式,能夠顯著提升畫(huà)面流暢度。
目前,frameSync 算法已在 Horizon OS v201 穩(wěn)定版中向開(kāi)發(fā)者開(kāi)放。開(kāi)發(fā)者只需在應(yīng)用的 AndroidManifest.xml 文件中添加 com.oculus.enable_frame_sync 元數(shù)據(jù),即可啟用該功能。從 Horizon OS v203 開(kāi)始,meta 計(jì)劃將 frameSync 設(shè)為 Horizon Store 應(yīng)用的默認(rèn)機(jī)制。不過(guò),開(kāi)發(fā)者仍可根據(jù)需要選擇關(guān)閉該功能,因?yàn)?frameSync 在某些情況下可能增加 CPU 和 GPU 的負(fù)載。
盡管更高的渲染吞吐量通常意味著更好的表現(xiàn),但也可能帶來(lái)更高的功耗和溫度。在極端情況下,這甚至可能觸發(fā)設(shè)備的熱降頻機(jī)制,導(dǎo)致整體性能下降。不過(guò),meta 表示,這種情況預(yù)計(jì)較為少見(jiàn),大多數(shù)游戲和應(yīng)用在啟用 frameSync 后仍將獲得整體性能和體驗(yàn)的提升。









