[No.H100]
Unity 2019.3已經(jīng)提供面向Oculus Quest的實(shí)驗(yàn)性Vulkan支持。
1. 什么是Vulkan
Mobile VR從一開(kāi)始就將OpenGL ES作為圖形API,但諸如Vulkan的底層API為開(kāi)發(fā)者提供了更大的靈活性和更低的渲染開(kāi)銷(xiāo)。Vulkan是一個(gè)相當(dāng)新的圖形API,具有眾多令其優(yōu)于OpenGL ES的功能。
與OpenGL ES不同,Vulkan是無(wú)狀態(tài)API,這意味著驅(qū)動(dòng)在指令之間不需要存儲(chǔ)任何底層狀態(tài)。Vulkan驅(qū)動(dòng)幾乎不執(zhí)行錯(cuò)誤檢查,所以每當(dāng)提交繪制調(diào)用或任何命令時(shí),工作量都將大為減少。Vulkan的靈活性優(yōu)勢(shì)對(duì)VR開(kāi)發(fā)者而言非常有價(jià)值。Vulkan為開(kāi)發(fā)者提供了增強(qiáng)的性能和控制,對(duì)Quest而言是非常有吸引力的圖形API。
更多關(guān)于GL和Vulkan之于Mobile VR的不同,請(qǐng)參閱映維網(wǎng)早前分享的博文:研發(fā)實(shí)戰(zhàn):如何在Oculus Mobile VR平臺(tái)進(jìn)行Vulkan開(kāi)發(fā)
2. 為什么是實(shí)驗(yàn)性質(zhì)?
之所以標(biāo)記為實(shí)驗(yàn)版本,這是為了說(shuō)明其依然存在一系列的問(wèn)題,質(zhì)量和性能尚未準(zhǔn)備好支持已發(fā)行的Quest應(yīng)用。Oculus計(jì)劃利用這段實(shí)驗(yàn)時(shí)期來(lái)采集社區(qū)對(duì)于性能和穩(wěn)定性的反饋。
這個(gè)版本包括一系列的高級(jí)渲染功能:多視圖和固定注視點(diǎn)渲染(Fixed Foveated Rendering;FFR)。另外,借助上述Vulkan的性能優(yōu)勢(shì),Oculus預(yù)計(jì)未來(lái)數(shù)月最終將能夠?qū)崿F(xiàn)約10%的CPU渲染成本優(yōu)化。
但是,目前尚不能保證所有應(yīng)用程序都能獲得上述的性能優(yōu)化,所以O(shè)culus將其標(biāo)記為實(shí)驗(yàn)版本。實(shí)際上,對(duì)于當(dāng)前的2019.3版本,Vulkan之于某些應(yīng)用程序的性能可能要比GL稍差。Oculus已經(jīng)確定了一些性能瓶頸和優(yōu)化機(jī)會(huì),并希望在不久的將來(lái)性繼續(xù)予以提升。
如果你要開(kāi)始一個(gè)新項(xiàng)目或者希望嘗試所述新功能,你可以使用Vulkan并向Oculus報(bào)告可能遇到的錯(cuò)誤。這可以幫助團(tuán)隊(duì)繼續(xù)優(yōu)化改進(jìn)。Oculus目前正在努力解決已知問(wèn)題并提升穩(wěn)定性。
解決功能和性能方面的錯(cuò)誤后,Oculus將刪除實(shí)驗(yàn)性標(biāo)簽,而Vulkan將成為官方推薦的Quest開(kāi)發(fā)圖形API。
3. 為Quest啟用Vulkan支持
Unity 2019.3正在轉(zhuǎn)向新的XR Management模型。當(dāng)結(jié)合使用Oculus XR Plugin和XR Plugin Management系統(tǒng)時(shí),2019.3以后將僅提供Vulkan支持。要啟用Vulkan,你需要對(duì)設(shè)置進(jìn)行一定的改動(dòng),并且現(xiàn)有項(xiàng)目應(yīng)該能夠輕松轉(zhuǎn)換為新的XR Management系統(tǒng)。
首先,請(qǐng)導(dǎo)航至Package Manager,并確保未安裝“Oculus Android”軟件包。接下來(lái),在Project Settings下轉(zhuǎn)到“XR Plugin Management”。確保選擇Android選項(xiàng)卡。安裝“Oculus XR Plugin”,并在“Plugin Providers”區(qū)域選擇“Oculus Loader”。最后,要配置特定于Oculus的設(shè)置,請(qǐng)導(dǎo)航至“Oculus”選項(xiàng)卡(下圖左下角)。
選擇Vulkan作為圖形API,請(qǐng)導(dǎo)航至Project Settings->Player->Other Settings->Graphics APIs,然后將Vulkan作為第一選擇。
4. 結(jié)合使用Vulkan與Universal Render Pipeline(URP)
目前,將URP與Vulkan一起使用并不完全穩(wěn)定,并且可能存在功能和性能錯(cuò)誤。在使用Vulkan時(shí),URP功能會(huì)稍微落后于內(nèi)置的RP功能,這是由于與URP相比,當(dāng)前使用內(nèi)置RP的Quest開(kāi)發(fā)者數(shù)量眾多。但是,Oculus將URP視為未來(lái)的重中之重,并且希望在接下來(lái)的幾個(gè)月中穩(wěn)定兩者的結(jié)合使用。
換句話說(shuō),Vulkan僅支持于幾周后發(fā)布的URP 7.2.0軟件包。
5. 已知的Unity Vulkan問(wèn)題
零星的FFR閃爍錯(cuò)誤*
使用Multiview時(shí)執(zhí)行清除操作可能會(huì)產(chǎn)生渲染偽影(影響初始屏幕)*
在某些情況下,將Multiview與內(nèi)置RP一起使用會(huì)退回到多通道渲染
文本/SDF著色器尚不適用于Multiview
深度緩沖區(qū)正在解析(存儲(chǔ)),導(dǎo)致每幀1-3ms的GPU成本
內(nèi)存使用沒(méi)有完全優(yōu)化。對(duì)于MSAA應(yīng)用,最多可容納約150-250MB的額外內(nèi)存
當(dāng)重新分配眼睛紋理時(shí),內(nèi)存泄漏為25-50MB
混合現(xiàn)實(shí)捕捉無(wú)效*
URP不穩(wěn)定*
Compositor層(OVROverlay)無(wú)效
Graphics Jobs不穩(wěn)定
目前尚不完全支持Perf工具
注:末尾的“*”表明問(wèn)題已修復(fù),并等待推出。
6. 問(wèn)題回答
問(wèn):Vulkan是否能夠改善我的應(yīng)用程序的GPU性能?
答:幾乎所有情況都不會(huì)。Vulkan是用于生成GPU命令的圖形API。如果你的圖形API是OpenGL ES,GPU仍然必須以類(lèi)似的方式執(zhí)行所述命令。但由于上述原因,CPU渲染線程性能肯定可以得到改善。
問(wèn):Oculus Go是否會(huì)支持Vulkan API?
答:遺憾的是,Oculus Go使用了較舊的GPU和圖形驅(qū)動(dòng),Oculus無(wú)法為Vulkan提供必要的穩(wěn)定性和性能。Oculus正在與圖形驅(qū)動(dòng)提供商緊密合作,共同將Vulkan支持帶到Oculus Quest。
榜單收錄、高管收錄、融資收錄、活動(dòng)收錄可發(fā)送郵件至news#citmt.cn(把#換成@)。
海報(bào)生成中...