隨著 2022.2 Tech Stream 版本發(fā)布,Progressive Lightmapper 光照烘焙功能迎來(lái)了大幅提升,將做為 Enlighten 的升級(jí)解決方案為廣大開發(fā)者帶來(lái)更高效、穩(wěn)定的使用體驗(yàn)。
隨著 2022.2 Tech Stream 版本發(fā)布,Progressive Lightmapper 光照烘焙功能迎來(lái)了大幅提升,將做為 Enlighten 的升級(jí)解決方案為廣大開發(fā)者帶來(lái)更高效、穩(wěn)定的使用體驗(yàn)。在降噪功能方面,我們不僅在新版本中增加了 HDRP(高清渲染管線) 路徑追蹤降噪功能,可實(shí)現(xiàn)無(wú)噪點(diǎn)的路徑追蹤圖像,還發(fā)布了 Optix 第 7 版降噪器和 Unity Denoising 軟件包及公共 API,降低了降噪功能的內(nèi)存占用,增加了不同降噪后端的適配性。Adaptive Probe Volume(自適應(yīng)探針體積) 中也增加了多個(gè)關(guān)鍵功能,包括光泄露防護(hù)功能、GPU 內(nèi)存流式傳輸功能及預(yù)覽功能,讓開發(fā)者能更好地處理多個(gè)場(chǎng)景的光照數(shù)據(jù)。本文將一覽以上重大更新,并和大家分享全局光照未來(lái)將推出的關(guān)鍵功能。Enlighten Baked GI 的棄用將不會(huì)影響 Enlighten Realtime GI,我們將繼續(xù)支持 Enlighten Real-time GI,直到 Unity 2024 LTS 結(jié)束,下圖中簡(jiǎn)要介紹了 Enlighten Baked GI 的棄用計(jì)劃。在計(jì)劃中我們將增加 Enlighten Real-time GI 對(duì) URP(通用渲染管線) 的支持,并將啟用對(duì) HDRP 的支持。此外,該 GI 將擴(kuò)展支持 Apple Silicon, Sony PlayStation(R) 5 和 Microsoft Xbox Series X|S 平臺(tái)。Enlighten Baked GI 計(jì)劃概覽
Enlighten Real-time GI 計(jì)劃概覽對(duì)于全局光照烘焙,我們著重于提高 GPU Lightmappper 的穩(wěn)定性和兼容范圍,希望為開發(fā)者提供一款高效、穩(wěn)定的解決方案。我們正按計(jì)劃逐漸棄用 Enlighten,首先將會(huì)從 Enlighten Baked GI 開始。Lightmapper 已經(jīng)作為該 GI 的替代方案被使用了數(shù)個(gè)版本。如果您正使用 Enlighten Baked GI,并且打算升級(jí)至 2022.2 及以上版本,推薦您在新版本中使用 Lightmapper。短期內(nèi)仍支持 Enlighten Baked GI,供開發(fā)者在過(guò)渡期間使用。通過(guò)打開 Edit > Project Settings > Graphics,即可勾選并重新啟用 Enlighten Baked GI,該功能將會(huì)在 2023.1 版本中移除。在 2022.2 版本,API 內(nèi)的 Enlighten Baked GI 已被標(biāo)注成“obsolete(廢棄)”。如果項(xiàng)目?jī)?nèi)使用了 Enlighten Baked GI,且已升級(jí)至 2022.2 版本,在項(xiàng)目中會(huì)看到 Lighting 里的相關(guān)設(shè)定會(huì)自動(dòng)切換到 Progressive CPU 烘焙(Apple silicon 設(shè)備中則會(huì)自動(dòng)切換到 Progressive GPU)。在這一步中可以選擇使用 CPU 或 GPU Progressive Lightmapper。Adaptive Probe Volume(自適應(yīng)探針體積)
隨著 2022.2 的發(fā)布,我們將持續(xù)優(yōu)化 Adaptive Probe Volume 的各項(xiàng)功能,首先將實(shí)現(xiàn)光泄露防護(hù)功能,光泄露防護(hù)功能是向探針光靜態(tài)幾何形(probe-lit static geometry)的一個(gè)重大邁進(jìn)。這樣在某些情況下,光照探針就能替換靜態(tài)對(duì)象的一些光照貼圖。目前 Adaptive Probe Volume 已支持 GPU 內(nèi)存流式傳輸,可以在光照探針數(shù)據(jù)不兼容 GPU 內(nèi)存的情況下構(gòu)建并運(yùn)行場(chǎng)景。Adaptive Probe Volume 的調(diào)試視圖展示了探針的密度隨場(chǎng)景元素密度的增加而增加(圖中資產(chǎn)源自資源商店的 ArchVizPRO Interior Vol.8)
我們還推出了烘焙多個(gè)探針光場(chǎng)景的預(yù)覽功能,讓開發(fā)者能快速編輯、烘焙并融合多個(gè)場(chǎng)景的光照數(shù)據(jù)。探針光的場(chǎng)景示例,包含日間和夜間光照?qǐng)鼍埃▓D中資產(chǎn)源自資源商店的ArchVizPRO Interior Vol.8)
HDRP Path Tracing Denoising(路徑追蹤降噪)
HDRP Path Tracing Denoising(路徑追蹤降噪) 可輸出無(wú)噪點(diǎn)的路徑追蹤圖像,無(wú)需再消耗大量時(shí)間合并未過(guò)濾樣本。注意該功能與離線及非交互渲染降噪相關(guān)聯(lián),所以不支持游戲內(nèi)的實(shí)時(shí)路徑追蹤降噪。HDRP 模板中帶降噪(右)和不帶降噪(左)的路徑追蹤對(duì)比在 2022.2 中,Lightmapper 的 Optix 降噪器升級(jí)到了第 7 版,最新版中使用了平鋪法來(lái)減少內(nèi)存消耗。現(xiàn)在,高分辨率的光照貼圖在烘焙和降噪時(shí)將占用更少內(nèi)存。Unity Denoising 軟件包及公共 API
隨 2022.2 的發(fā)布,我們將內(nèi)部使用的圖像降噪功能組合成了 Unity Denoising 軟件包,現(xiàn)在可通過(guò) C# 公共 API 進(jìn)行訪問(wèn)。開發(fā)者可以根據(jù)目標(biāo)平臺(tái)和硬件的處理能力,使用該 API 選擇不同的降噪后端,例如 Optix 或 OIDN。我們?cè)阱e(cuò)誤報(bào)告里看到有部分用戶在使用 Light Probe 時(shí),遇到編輯器在運(yùn)行模式下加載和卸載部分場(chǎng)景時(shí)崩潰的現(xiàn)象。這些崩潰背后有許多原因,其中最常見(jiàn)的一個(gè)原因是:引擎不清楚當(dāng)前場(chǎng)景的光照探針組是否做好了渲染準(zhǔn)備,這有可能導(dǎo)致光照探針組的狀態(tài)被損壞。在 2022.2 中,改進(jìn)后的代碼能清楚定義光照探針組是否做好了渲染準(zhǔn)備,修復(fù)了可能導(dǎo)致崩潰的光照探針組狀態(tài)損壞問(wèn)題。此前,當(dāng)受探針光對(duì)象被移出四面體外殼,需要搜索整個(gè)光照探針的四面體外殼并找到最近的光照探針,隨著殼外對(duì)象愈復(fù)雜,這一搜索過(guò)程所需的時(shí)間也就越長(zhǎng)。為了優(yōu)化新項(xiàng)目里的默認(rèn)行為,Graphics 設(shè)置中將包含一個(gè)新屬性用于設(shè)定放置在殼外的探針光照對(duì)象的采樣行為,通過(guò)使用環(huán)境探針取代全面搜索,為殼外對(duì)象新添了一條加速路徑。這一功能在舊版本中也將能使用。修復(fù)了在某些情況下(如場(chǎng)景未經(jīng)烘焙時(shí)),構(gòu)建好的應(yīng)用中會(huì)缺少環(huán)境光照的問(wèn)題。為了解決新項(xiàng)目加載 OpenCL 著色器過(guò)慢的問(wèn)題,我們?cè)?GICache 緩存了二進(jìn)制文件,加快了 OpenCL 著色器的加載。在測(cè)試中,當(dāng) OpenCL 著色器從 GICache 讀取時(shí),我們?cè)?GPU 光照貼圖烘焙耗時(shí)方面看到了可觀的改進(jìn)。不過(guò),因?yàn)榫庉嬈髟谑状螁?dòng)時(shí)需要建立這些緩存文件,所以初次啟動(dòng)的速度并不會(huì)改變。測(cè)試環(huán)境中烘焙編譯耗時(shí)的改進(jìn)在 2022.2 中,還有幾處提升用戶體驗(yàn)的改進(jìn): 改進(jìn)了 Lighting 窗口中的字段與屬性的對(duì)齊 New 和 Clone 按鍵在同一行,方便 Lighting Settings Assets 的創(chuàng)建 Min 和 Max Bounces 字段合并成 Max Bounces 改進(jìn) Gaussian 濾鏡精度至 0.1 紋素(此前鎖定在 1 紋素) 重新組織了 Lightmap Parameters Asset 的 UI,以提高可讀性在全局光照的未來(lái)發(fā)展計(jì)劃中,還有一些值得關(guān)注的關(guān)鍵功能:Adaptive Probe Volumes(自適應(yīng)探針體積)
至 2023.1,Adaptive Probe Volumes 的核心功能和用戶體驗(yàn)會(huì)得到進(jìn)一步改進(jìn),最終達(dá)到“experimental(實(shí)驗(yàn)版)/preview(預(yù)覽版)”標(biāo)簽的移除。我們還在增加 URP 對(duì)該功能的支持。注意最初版功能將不支持 Lighting Scenario Blending(光照?qǐng)鼍盎旌希?,也難以保證在低端平臺(tái)上有明顯的性能優(yōu)化。Precomputed Realtime GI(預(yù)計(jì)算實(shí)時(shí) GI)
我們將提供一種實(shí)時(shí)全局光照解決方案 Precomputed Realtime Global Illumination(預(yù)計(jì)算實(shí)時(shí)全局光照),相比于 Ray Traced Global Illumination(光線追蹤全局光照,RTGI) 或 Screen Space Global Illumination(屏幕空間全局光照,SSGI),這種解決方案可擴(kuò)展至更多平臺(tái)。它所采用的預(yù)烘焙光照探針數(shù)據(jù)會(huì)在運(yùn)行時(shí)動(dòng)態(tài)地更新探針光照對(duì)象的間接光照,讓開發(fā)者能采用墻壁、屋頂、地面等靜態(tài)對(duì)象傳來(lái)的動(dòng)態(tài)光照,來(lái)制作、構(gòu)建和運(yùn)行實(shí)時(shí) GI。Bake GI 實(shí)時(shí)預(yù)覽
為了快速預(yù)覽烘焙出的光線,我們?yōu)楹姹汗庹諗?shù)據(jù)提供了一條專門的預(yù)覽路徑以加快迭代效率。我們使用“反向”路徑追蹤(光線路徑從攝像機(jī)出發(fā))來(lái)計(jì)算可見(jiàn)部分的光照,讓開發(fā)者能隨時(shí)預(yù)覽場(chǎng)景光照。該功能可以利用硬件加速光追,也可以通過(guò)一種備用計(jì)算著色器,支持在非硬件光追在 GPU 上工作。隨著 GPU Lightmapper 的基礎(chǔ)性工作持續(xù)推進(jìn),我們將為開發(fā)者帶來(lái)更高效穩(wěn)定、可預(yù)覽的光照解決方案。我們希望將這些公共 API 做成強(qiáng)大、實(shí)用且擁有廣泛支持的 C# API。您可以用它來(lái)定義影響 GI 烘焙的輸入,比如 Mesh、Transform、Material、Light 等等;以及所生成的輸出,比如光照貼圖和探針及其單獨(dú)組件,包括輻照度(irradiance)、方向性(directionality)、遮擋(occlusion)和八面體深度(octahedral depth)等。
立即登錄,閱讀全文