Oculus Unity插件最新的v23版本增加了對Quest和Quest 2應(yīng)用程序開發(fā)的實驗性O(shè)penXR支持。同時Unity和Unreal Engine 4的Oculus插件集成中都增加了一種新的減少位置延遲的技術(shù),稱為「相位同步」。Oculus建議所有Quest開發(fā)人員都應(yīng)當(dāng)考慮使用這一技術(shù)。
Oculus Unity插件對OpenXR的支持
OpenXR是一項旨在簡化XR應(yīng)用程序開發(fā)的行業(yè)標(biāo)準(zhǔn),今年即將邁向大規(guī)模的應(yīng)用。今天Oculus發(fā)布了新的開發(fā)工具,對用Unity構(gòu)建的Quest和Quest 2應(yīng)用程序增加了實驗性的OpenXR支持。
OpenXR允許開發(fā)人員一次構(gòu)建與任何OpenXR頭顯兼容的應(yīng)用程序,而無需為每個頭顯進行單獨適配。盡管Unity自身也在推進引擎對于OpenXR的支持,但Oculus Unity插件顯然動作要更快一些。
今年早些時候,Oculus也發(fā)布了用于構(gòu)建源生Quest和Rift應(yīng)用程序的OpenXR支持。
Unity和虛幻引擎中的「相位同步」減少延遲
Oculus稱,針對Unity和Unreal Engine 4的v23 Oculus插件還帶來了新的延遲降低技術(shù),稱為「相位同步」(Phase Sync),該技術(shù)可以減少位置跟蹤延遲,卻不會產(chǎn)生性能開銷。Oculus建議每個開發(fā)中的應(yīng)用都應(yīng)啟用「相位同步」,尤其是在應(yīng)用對延遲敏感的情況下(例如使用手勢識別等等)。
雖然Quest長期以來一直使用「異步時間扭曲」來減少頭顯旋轉(zhuǎn)時的渲染延遲,方法是將渲染的幀依據(jù)畫面即將顯示時頭顯最新的旋轉(zhuǎn)數(shù)據(jù)進行再次處理,但位置跟蹤并不能從該技術(shù)中受益。
降低位置追蹤延遲的一種方法是盡量縮短幀渲染完成到實際發(fā)送顯示器之間的時間長度。理想情況下,一幀畫面應(yīng)當(dāng)在發(fā)送到顯示器之前剛完成渲染。如果渲染提早完成,則從完成幀渲染到將其發(fā)送到顯示器之間的整段時間意味著位置追蹤的延遲。
「相位同步」引入了動態(tài)幀定時,通過動態(tài)調(diào)整來確保以最佳方式完成幀渲染以減少等待時間。
與Oculus PC SDK不同,Oculus Mobile SDK自推出以來就一直使用固定延遲模式來管理幀時序。固定延遲模式的原理是盡早完成所有操作,以避免過時的幀。它很好地實現(xiàn)了這一目標(biāo),但是隨著Quest 2的CPU和GPU計算能力比Quest顯著增加,許多應(yīng)用程序可以比計劃提前完成幀渲染。這反而帶來了更高的追蹤延遲。
與固定延遲模式相比,「相位同步」會根據(jù)應(yīng)用程序的工作量自適應(yīng)地處理幀定時。目的是使幀恰好在合成器需要完整畫面幀之前完成渲染,這樣可以盡可能多的降低延遲,并且也不會導(dǎo)致任何幀丟失。下圖顯示了典型的多線程VR應(yīng)用程序上的「相位同步」和固定延遲模式之間的差異。
【93913原創(chuàng)內(nèi)容,轉(zhuǎn)載請注明及回鏈】
]]>