99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

LightGraph:使用最短路徑查找在參與介質(zhì)中實現(xiàn)高效多重散射

0
分享至


【USparkle專欄】如果你深懷絕技,愛“搞點研究”,樂于分享也博采眾長,我們期待你的加入,讓智慧的火花碰撞交織,讓知識的傳遞生生不息!

這是侑虎科技第1806篇文章,感謝作者Angelou供稿。歡迎轉(zhuǎn)發(fā)分享,未經(jīng)作者授權(quán)請勿轉(zhuǎn)載。如果您有任何獨到的見解或者發(fā)現(xiàn)也歡迎聯(lián)系我們,一起探討。(QQ群:793972859)

作者主頁:

https://www.zhihu.com/people/cong-ba-luo-ke-dao-lang-man-de-ni

本文提出了一種在離散高分辨率非均勻參與介質(zhì)中估計多重散射的有效方法,稱為“LightGraph”。該方法基于隨機生成的圖表,通過使用最短路徑查找來估計光在體積中的傳播方式。這種新方法提供了一種實現(xiàn)高質(zhì)量照片級多重散射效果的方式,而其計算成本相對較低。該方案的目標(biāo)不是物理上的準(zhǔn)確,也不是實時運行,而是從實用的角度出發(fā)成為一種快速可靠且靈活性高的解決方案。

這項工作是Alexandre Sirois-Vigneux在蒙特利爾大學(xué)IFT-6042的背景下用一個學(xué)期的時間完成的,項目已開源,建立在OpenVDB之上,使用光線追蹤為基礎(chǔ)渲染方式。

PS:文章出現(xiàn)的部分文獻鏈接可在文末查看。

一、內(nèi)容介紹

視覺效果制作的當(dāng)前趨勢仍然圍繞著Arnold之類的路徑追蹤器,因為這些系統(tǒng)非常直接和可預(yù)測。大型工作室擁有的渲染農(nóng)場使得這些昂貴的技術(shù)在過去幾年中得以在實踐中使用。該行業(yè)傾向于使用更簡單的技術(shù),這些技術(shù)使用更多的機器時間和更少的人工時間,并認為這是生產(chǎn)方面最有效的權(quán)衡。但行業(yè)現(xiàn)正在迅速轉(zhuǎn)變?yōu)榱硪环N模式,過去需要數(shù)月才能完成的任務(wù)現(xiàn)在預(yù)計數(shù)周內(nèi)就能完成。在這種新趨勢下,工作室通常需要在幾個小時內(nèi)處理問題。

為此,我們提出了一種使用最短路徑查找(SPF)來估計多重散射影響的解決方案。單次散射事件由傳統(tǒng)的RayMarching進行處理,而多次散射事件則通過對對應(yīng)于圖形頂點的點云執(zhí)行密度估計來近似。我們的思路是使用體積中的幾百個頂點隨機定義多個圖,然后根據(jù)用戶定義的密度網(wǎng)格對邊緣進行射線行進以評估它們的透射率,接著使用這些透射率作為權(quán)重以最短路徑查找找到每對頂點之間最少遮擋的路徑。這個過程可以并行重復(fù)多次并光柵化為一個體積網(wǎng)格。

最后,RayMarching估計器可以在渲染時將多次散射的網(wǎng)格視作自發(fā)輻射組件直接進行距離采樣,這使得RTE評估過程非常有效。盡管這種技術(shù)本質(zhì)上存在Bias,但結(jié)果表明由于性能上極具優(yōu)勢,所以該技術(shù)仍然可以作為視效工作的有效手段。

二、前置工作

回顧一些和本文有關(guān)的工作。

B.Wang和N.Holzschuch在SIGGRAPH 2017提出了一種技術(shù),用于預(yù)計算多個散射事件(假設(shè)介質(zhì)無限大),并將其存儲在兩個4D表中。他們的技術(shù)可以與多種渲染算法一起使用,并且能夠顯著加快收斂速度。不幸的是,它僅適用于參與介質(zhì),因此無法用于渲染云、煙或者任何模擬流體等。這一工作發(fā)表《Precomputed multiple scattering for light simulation in participating medium》一文中。

Szirmay-Kalos等人在2005年提出了一種實時方法,用于計算具有一般相位函數(shù)的非均質(zhì)參與介質(zhì)中的多重散射。他們將參與介質(zhì)建模為一個粒子系統(tǒng),假設(shè)體積是靜態(tài)的,而光和相機仍然可以運動。該方法將介質(zhì)粒子間的光線散射存儲在“照明網(wǎng)絡(luò)”中,這一工作發(fā)表在《Real-time multiple scattering in participating media with illumination networks》一文中。

我們之前在《參與介質(zhì)中的實時多重散射和照明網(wǎng)絡(luò)》中也有專門分析過。

雖然這一思路允許實時計算照明,但結(jié)果精度較低且不支持動畫體積,這兩點極大限制了它的使用。

D.Koerner等人在2014年提出了一種稱為“flux-limited diffusion”(翻譯為“輻射通量限制擴散”)的方法用于渲染參與介質(zhì)中的多重散射效應(yīng)。文章為:《Flux-Limited Diffusion for Multiple Scattering in Participating Media》。基于擴散近似是蒙特卡洛路徑追蹤一種極其有效的替代方法。但是在足夠透明區(qū)域中,經(jīng)典擴散近似會受到非物理輻射通量的影響,導(dǎo)致與正確的光傳輸匹配不佳,這阻止了將經(jīng)典擴散近似應(yīng)用于非均質(zhì)材料領(lǐng)域。為了解決這個問題,Koerner引入了天體物理學(xué)中的一種技術(shù)——Flux-limited diffusion。新的擴散算法能夠更準(zhǔn)確地呈現(xiàn)各種非均質(zhì)材料中的多重散射,但是目前這一技術(shù)尚未被證明在HDR照明環(huán)境下會表現(xiàn)如何,環(huán)境光散射的引入方式是視效類體積渲染器中非常重要的一部分,但往往也是最容易被忽略的一部分,在相當(dāng)多的工作中都是如此。

Kallweit等人在SIGGRAPH 2017提出了一種使用蒙特卡洛積分和神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法高效合成大氣云景, 也就是大家所熟知的Disney那篇《Deep scattering: rendering atmospheric clouds with radiance-predicting neural networks》,該方案相較于以往手段可以高效地推測云中任何一點的輻射,缺點就是神經(jīng)網(wǎng)絡(luò)和著色參數(shù)非常復(fù)雜且高度專注云渲染,很難直接推廣到其他材料比如煙和霧,從而限制了它的應(yīng)用。

PS: 當(dāng)然更輕量,泛化性更強的神經(jīng)網(wǎng)絡(luò)在SIGGRAPH 2023上被提出來,對此有機會我們再做分析與解讀。因為本文所討論的工作出現(xiàn)在2020年,僅適合對之前的方案做對比。

Jensen等人在1998年提出了一種光子映射擴展方法來計算參與介質(zhì)場景中的全局照明:《Efficient simulation of light transport in scenes with participating media using photon maps》雖然很老了,但非常經(jīng)典,影響也很大。這種方法適用于雙向路徑追蹤,使用體積光子圖來提高效率并降低噪聲。可以輕松重現(xiàn)多重散射等效果,但目前還不清楚這種技術(shù)在處理像火焰這種黑體輻射類體積時效果如何,且火焰煙霧是VFX中經(jīng)常出現(xiàn)的場景。

三、方案概述

本方法試圖利用參與介質(zhì)中多重散射的低頻特性,通過使用極少的樣本近似解,然后將這些樣本光柵化為稀疏的低分辨率網(wǎng)格以確保在渲染時快速查找。因此,多重散射在渲染開始之前會預(yù)先計算并存儲在內(nèi)存中。這個多重散射網(wǎng)格(MSG)將以類似于RTE中Le自發(fā)光的方式進行采樣。該方法的一個特點是,使用SPF(最短路徑查找)來估計介質(zhì)中兩點之間傳播的光量,而不是依賴隨機游走,這會帶來Bias,但也顯著加快了收斂速度,因為大多數(shù)路徑對解決方案都是有意義的貢獻。

以下是LightGraph的一些主要功能,它支持通過命令行以參數(shù)鏈形式提供場景描述,支持多光源(包括點光、定向光和環(huán)境光(類似天光或HDR照明之類的))。如下圖所示,每個渲染圖像都以EXR格式寫入磁盤,其中包括3個任意輸出變量(AOV),分別隔離單次散射,多重散射和自發(fā)光的貢獻。還有一個選項可以通過將LightGraph幾何圖形(動態(tài)創(chuàng)建的以計算多次散射)輸出為ASCII文件,用于調(diào)試或可視化目的,還可以發(fā)送多個相機光線以減少混疊。內(nèi)置著色器處理溫度網(wǎng)格,并具有顏色漸變參數(shù),允許用戶將溫度值重新映射到體積的發(fā)射色。


使用帶有日落HDR圖的環(huán)境光渲染Bunny,與純定向光照明相比計算成本并沒有更高


使用LightGraph渲染爆炸,單次散射,自發(fā)輻射,多次散射與單散射+自發(fā)光合成圖像渲染規(guī)格:一個定向光,一個恒定藍色的環(huán)境光,迭代次數(shù):5000

四、實現(xiàn)細節(jié)

給出的倉庫中使用C++實現(xiàn), 基于Intel的TBB完成多線程。也嘗試使用了OpenMP多線程機制,但結(jié)果發(fā)現(xiàn)與TBB相比性能要慢很多。總之整套實現(xiàn)基于多個三方庫完成,并遵循了VFX行業(yè)中一些成熟的標(biāo)準(zhǔn),數(shù)據(jù)結(jié)構(gòu)小節(jié)將更詳細地討論這些內(nèi)容。

1. 最短路徑查找作為重要性抽樣啟發(fā)式方法

MIS(多重重要性抽樣)是蒙特卡洛模擬方案中的關(guān)鍵部分,它具有無偏的理論優(yōu)勢,但即使最先進的方法也難以在合理時間內(nèi)收斂,尤其是在涉及多重散射時。本文所討論的方法在理論上沒有保證能收斂到正確的,但經(jīng)驗表明它可以收斂到結(jié)構(gòu)至少看起來是“正確的”。

如下圖所示,SPF試圖避免在不會對多重散射產(chǎn)生重大貢獻的路徑上浪費時間。


可以看到,我們強制解決方案僅對高輻射傳輸?shù)穆窂讲蓸樱С诌@一決策的重要經(jīng)驗是:假設(shè)僅考慮體積中每對頂點之間最有價值的路徑就足以產(chǎn)生最大影響的采樣分布。因此,我們將精力集中在對可感知信息產(chǎn)生最大影響的采樣上。正如稍后將討論的那樣,這種啟發(fā)式方法的計算成本比MIS路徑追蹤高得多,但它的隨機性也低得多。由于執(zhí)行多重散射估計得底層圖非常粗糙,因此單個LightGraph迭代返回的解決方案可能包含顯著的低頻方差。但隨著我們聚合更多這樣的迭代(如下圖所示),這種方差會減少,直到它無法被肉眼感知到。


左側(cè)是100個LightGraph迭代相互重疊的幾何圖形可視化,右側(cè)是100個迭代中的8個獨立迭代圖形的頂點由其輻射擴散之后的值著色,整個過程在硬件上計算不超過8s

2. 數(shù)據(jù)結(jié)構(gòu)

既然是CPU渲染器,稀疏體素數(shù)據(jù)結(jié)構(gòu)選擇OpenVDB就很好了。OpenVDB也依賴了Industrial Light & Magic開發(fā)的OpenEXR用于以高動態(tài)范圍半浮點格式存儲渲染圖像。

3. 算法概述

算法偽代碼如下:


4. 多重散射估計

點云創(chuàng)建:我們首先使用“飛鏢投擲算法”將點散布在體積內(nèi),以使用盡可能少的點來最大限制地提高估計質(zhì)量。根據(jù)經(jīng)驗,每個LightGraph迭代750個點能夠在圖形分辨率和運行時性能之間取得良好平衡,點僅散布在包含密度的體素中(空體素不撒點),每個點都以至少δ的距離添加到所有其他點以確保密度網(wǎng)格內(nèi)的均勻分布。用戶無需執(zhí)行任何特殊操作來強制執(zhí)行750點的約束,因為系統(tǒng)會在投擲飛鏢時動態(tài)調(diào)整δ。首先根據(jù)邊界框的大小對δ進行估計,以使其保持尺度不變。然后,預(yù)定義的多項式函數(shù)會估計點在點云中累積的預(yù)期速率。每投擲10000個點,就會與該預(yù)期值進行比較,然后調(diào)整δ。增加δ可以減緩點的累積,因為這會迫使它們彼此之間距離更遠。通過減少δ可以獲得相反的行為。每次LightGraph迭代中。總共有100萬個點被投擲到密度網(wǎng)格邊界框中,這意味著每次迭代最多調(diào)整99次。有一個提前停止機制,如果累積點超過750. 就會停止投擲飛鏢。從測試實驗來看,提前停止很少被觸發(fā),并且當(dāng)使用時,迭代總是即將完成,這是預(yù)期的行為。如果迭代在投擲幾次飛鏢后就提前停止,點云分布的質(zhì)量很可能會受到影響,點云需要保持較小的主要原因是后續(xù)步驟中使用的SDF算法的復(fù)雜性。每次迭代都會修改自己的δ版本以啟用線程安全的讀/寫訪問,因此每次迭代都在單獨的線程上并行運行。每次迭代會創(chuàng)建一個單獨的隨機數(shù)生成器實例,以確保算法的確定性結(jié)果。

圖創(chuàng)建:然后,我們構(gòu)造一個布爾鄰接矩陣來存儲散點之間的邊緣。在最大半徑1.7 X δ內(nèi),最多允許與相鄰點建立12個連接。

射線行進圖邊緣:然后將圖形的每個邊與輸入網(wǎng)格的密度網(wǎng)格進行射線行進,以計算每個段的透射率,將這些預(yù)計算的透射率值存儲在另外一個浮點值矩陣中。標(biāo)量參數(shù)可供用戶單獨調(diào)整密度值以進行多次散射計算。根據(jù)Kyle Hegeman等人2005年《A lighting model for general participating media》中的研究,將用于單次散射的密度與用于多次散射的密度分離可以更好地適應(yīng)密度更大的介質(zhì)中的蒙特卡洛模擬。

最短路徑尋找解決方案:接下來,我們通過運行Floyd-Warshall算法的修改版本找到每對頂點之間透射率最高的那條路徑。求解是按通道執(zhí)行的,因此如果要渲染的體積具有波長相關(guān)的散射值理論上它可以為每個RGB分量找到單獨的最佳路徑。此步驟將通過考慮當(dāng)前圖中每對頂點之間的所有可能路徑來確定透射率最高的路徑。在SPF求解后,結(jié)果透射率存儲在對稱權(quán)重矩陣中,路徑本身則永遠不會被存儲。

頂點照明計算:通過陰影射線沿著密度網(wǎng)格向場景中的每個光源行進,計算圖中每個頂點接收到的輻射度并將其存儲到數(shù)組中。

輻射擴散:在執(zhí)行輻射擴散之前,我們調(diào)整SPF步驟中計算出的對稱權(quán)重矩陣以強制能量守恒,即:我們確保每個頂點擴散的能量不會超過其在頂點照明階段接收的能量,這是通過將從一個點到圖形中所有其他點的所有透射總和限制為1實現(xiàn)的。這樣,圖形在擴散前后仍將包含相同的總輻射。然后我們執(zhí)行輻射擴散,其中圖形的每個頂點將根據(jù)歸一化權(quán)重從所有其他點收集輻射。

將點聚合到稀疏網(wǎng)格:一旦計算完所有的LightGraph迭代,點就會聚集在稀疏網(wǎng)格中,以確保快速查找查詢。為了實現(xiàn)最佳性能,網(wǎng)格的分辨率會動態(tài)調(diào)整為每個體素存儲大約8個點,如OpenVDB所建議的那樣。這一步對于該技術(shù)至關(guān)重要,因為我們可能會處理大量的點。這種加速結(jié)構(gòu)的質(zhì)量將對下一步的性能產(chǎn)生重大影響,我們將搜集到的輻射度光柵化為體積網(wǎng)格。

將多散射光柵化體積網(wǎng)格:使用與密度網(wǎng)格相同的稀疏樹創(chuàng)建多重散射網(wǎng)格(MSG), 但默認情況下其體素大小為原始體素大小的4倍,從而有效地創(chuàng)建體素數(shù)為密度網(wǎng)格的


的體積。這種降采樣策略將保持較低的內(nèi)存占用,同時仍提供足夠的分辨率來正確捕獲本質(zhì)上是低頻的多重散射。此MSG可防止算法在渲染時對網(wǎng)格進行RayMarching時在每個樣本處執(zhí)行點云查詢。由于數(shù)據(jù)結(jié)構(gòu)是稀疏的,我們在縮小的MSG中激活每個活動體素周圍的一個體素的填充(最多3^3-1=26個體素),以防止由于MSG對密度網(wǎng)格的覆蓋范圍有限而產(chǎn)生偽影,如下圖所示:


藍色為密度網(wǎng)格,橙色為1/4分辨率的MSG網(wǎng)格,綠色為減少偽影而考慮的Padding

這種Padding很重要,因為我們將在渲染時使用密度網(wǎng)格作為MSG的掩碼,然后,我們迭代MSG的每個活動體素,并使用各向同性高斯核進行密度估計:


其中

是體素位置x處估計的多重散射,k(.)是具有參數(shù)μ=x和σ,它定義了所有考慮的相鄰點位置xi的權(quán)重。參數(shù)σ^2源自Points per Kernel用戶參數(shù)k,我們首先需要定義在點云中尋找其他點的最大距離。我們知道數(shù)據(jù)結(jié)構(gòu)平均每個體素包含8個點,那么將γ設(shè)置為體素的寬度,因此有:


其中V是預(yù)計包含8個點的體積,然后我們可以將V乘以比率k/8,并求解最大搜索半徑r:


對于具體情況,n維高斯核的表達式可以簡化為:


其中,

因為核是各向同性的。我們使用截斷高斯核,并且只考慮權(quán)重大于經(jīng)驗確定的閾值0.1的點。現(xiàn)在我們可以使用此信息求解σ^2了:


5. 逐像素RayMarching

此時,我們已經(jīng)將多重散射存儲在MSG中,因此可以在恒定時間內(nèi)在體積內(nèi)任意一點對其進行三線性插值。因此,可以使用現(xiàn)有的射線追蹤技術(shù)對體積進行射線行進,將多重散射視為簡單的自發(fā)光網(wǎng)格一樣處理。

為了避免因密度和MSG之間的分辨率不匹配而導(dǎo)致的偽影,我們使用密度網(wǎng)格作為MSG的掩碼。對于此掩碼,密度網(wǎng)格的值范圍被限制在[0,1]范圍內(nèi),然后默認提升到0.25次方,與蒙特卡洛模擬相比,這可以提供最佳擬合度。

然后使用傳統(tǒng)技術(shù)對圖像進行光線行進以解決參與介質(zhì)中的單次散射。每條主射線都會對溫度網(wǎng)格(如果有對應(yīng)的VDB輸入)以及MSG進行采樣。陰影射線也會從主體積樣本投射,并朝著場景中的每個貢獻光源進行RayMarching。溫度值被重新映射到從內(nèi)置著色器的顏色漸變參數(shù)部分派生處的RGB顏色。當(dāng)所有像素都完成渲染后,每個像素的RGBA值以及3個額外的AOV將作為半浮點EXR圖像保存到磁盤。

6. 算法復(fù)雜性分析

創(chuàng)建MSG的大多數(shù)步驟都涉及O(n^2)的算法復(fù)雜度,其中n是第一步中生成的點云中的點數(shù)。不幸的是,SPF步驟的算法復(fù)雜度需要O(n^3),一旦點數(shù)達到一定數(shù)量,它就會崩潰。為了解決這個限制,我們將計算分為λ個單獨的LightGraph迭代,然后將它們聚合起來。由于強制n→50,SPF以及迭代中的所有其他步驟在運行時間方面變得非常可預(yù)測,可以看作是恒定的計算時間。整個LightGraph在O(λn^3)下運行,這是一個比O(λn)^3更可行的解決方案。這種分離還使算法可以輕松并行化。通過將多重散射光柵化為MSG,計算時間得到進一步減少,從而有效地將渲染部分的算法從復(fù)雜度O(ps(log q+s))降低到O(ps^2), 其中p是圖像中的像素數(shù),s是每個路徑的“相機/陰影樣本數(shù)”的上限,q是從所有LightGraph迭代中聚合的點數(shù)。一旦計算完成,MSG便可在恒定時間內(nèi)有效地提供此信息。如下表中所看到的那樣,考慮單次迭代,MSG創(chuàng)建遠非算法中昂貴的部分。在內(nèi)存占用方面,我們的方法為O((1/64)*v+750λ),其中v是輸入密度網(wǎng)格中的體素數(shù)。在大多數(shù)現(xiàn)代機器上,即使λ值很大,額外的內(nèi)存使用量也不會引人注目。


7. 預(yù)計算的優(yōu)勢

該方法的一個關(guān)鍵優(yōu)勢是,除非體積或光線被動畫化,否則近似產(chǎn)生的噪聲是不可感知的。多重散射估計可能會有很大偏差,但在視覺上仍然可信,因為與我們通常使用蒙特卡羅積分獲得的噪聲相比,噪聲的頻率非常低。如果相機在體積周圍移動,則只有單次散射會被重新計算為新解決方案,因為無論使用什么相機,多重散射解決方案始終相同。如果光線發(fā)生變化,底層LightGraph迭代在每一幀之間仍將保持不變。只有頂點照明計算和輻射擴散會產(chǎn)生不同的結(jié)果。底層結(jié)構(gòu)不受干擾的事實使得解決方案即使迭代次數(shù)較少也能對光線變化保持高度穩(wěn)定。,如下圖所示:


3個定向燈,Iterations:25,Points Per Kernel:1, Scatter Scale:3.0,Scatter Density Scale:0.5,Scatter Density Min:0.025, Scatter Density Mask Power:0.25,Volume Color:1.0, Scattering:1.5

最后,如果體積被動畫化,一切都會逐幀發(fā)生變化,這可能需要更多迭代才能實現(xiàn)整個序列的時間穩(wěn)定性。

8. 收斂速度

每個核的點數(shù)k以及LightGraph迭代次數(shù)λ是決定多重散射解決方案穩(wěn)定性的兩個用戶參數(shù)。在本節(jié)中,我們將重點介紹這些參數(shù)如何影響到解決方案的穩(wěn)定性、運行時性能和細節(jié)水平,以便對控制估計質(zhì)量的因素形成直覺性認識。為了評估該方法的收斂速度,需要使用RMSE(均方根誤差)指標(biāo):


其中xi是根據(jù)收斂像素值μ測試的像素值。從下圖中,我們可以提取出0.135的收斂階數(shù),這通常相當(dāng)糟糕,但在我們的案例中,圖中的橙色線表示近似閾值,在該閾值上,誤差變得無法被人眼察覺,在大多數(shù)情況下,這種情況發(fā)生在≈35秒的計算之后。


收斂和非收斂渲染之間的RMSE,相對于LightGraph迭代次數(shù),橙色水平線表示誤差變得無法被眼睛察覺的大致點

從下圖可以看到,得益于并行實現(xiàn),我們可以將λ從1增加到10而無需支付任何額外的成本,一旦我們超出了機器上可用的線程數(shù),性能就會開始下降:


相較于λ和k的收斂速度,第一行顯示使用固定的每核點數(shù)看k=1然后增加LightGraph的迭代次數(shù)λ的結(jié)果。下面一行顯示使用固定的λ=10將多重散射估計光柵化為低分辨率MSG時不斷在增加k的結(jié)果,每個圖像頂部的運行時分別表示計算LightGraph數(shù)據(jù)結(jié)構(gòu)(左)和光柵化(右)需要的時間。第二行的結(jié)果表明,增加k 的成本比增加λ的成本低得多。但我們也看到,這往往會使得估計值變得平滑,在某些情況下,我們可以用λ≈25獲得完美的結(jié)果。如果我們有一個動畫體積序列,并且無法增加k來保留細節(jié),我們可能需要轉(zhuǎn)到500才能在整個序列中達到時間穩(wěn)定性。注意,k總是乘以λ以使內(nèi)合大小和λ無關(guān)。這意味著在實踐過程中k=5和λ=10的組合定義了一個使用每體素估計50個點的內(nèi)核。

五、方案結(jié)果

為了解我們的技術(shù)與最先進的解決方案相比如何,我們選擇使用LightGraph(我們的方法)和皮克斯生產(chǎn)渲染器的最新可用版本:RenderMan 23.2 [15] 來渲染多個場景。我們嘗試在相似的時間范圍內(nèi)渲染這兩幅圖像,以查看在緊張的渲染時間預(yù)算下這兩種軟件可以生成什么樣的結(jié)果。我們還提供了一個更加融合的RenderMan圖像版本作為參考。對于RenderMan,我們使用它們的路徑跟蹤積分器,如無特別說明,其多次散射反彈限制為10次。用于測試的硬件是英特爾Hexa-Core i7-3930K CPU@3.8GHz,配備64GB RAM。每幅圖像以960x540的分辨率渲染,就像素數(shù)而言,相當(dāng)于全高清幀的四分之一。實驗中每幅圖像的渲染規(guī)范將分別在每個小節(jié)中給出。

請注意,與路徑追蹤的渲染時間與圖像中的像素數(shù)量成線性比例不同,我們的方法將多重散射計算與圖像大小分離開來。這意味著只有算法中相對便宜的單次散射部分將線性依賴于像素數(shù)量。因此,多重散射的計算與像素數(shù)無關(guān),這對于覆蓋大部分幀的高分辨率圖像尤其有效。

1. 云用例

云用例使用了一個相當(dāng)簡化的相位函數(shù)模型,為了簡單起見,我們將每個體積視為各向同性(即均勻散射)。因此,下圖所展示的云不會具有正確的相位函數(shù):具有前向和后向散射峰值。話雖如此,我們看到在很短的時間內(nèi)本方法實現(xiàn)了無噪聲圖像,該圖像對于相機和燈光動畫都完全穩(wěn)定。關(guān)于右側(cè)的圖像,路徑跟蹤方法沒有利用多重散射預(yù)期解決方案的低頻特性。每個像素都在解決自己的問題,這導(dǎo)致進行了大量不必要的計算。在圖像僅為960×540的設(shè)置中,使用右側(cè)的技術(shù)讓渲染在±2小時內(nèi)收斂可能不成問題。問題是大多數(shù)動畫和實景電影現(xiàn)在都以4K渲染,這意味著像素增加了16倍,因此需要32小時才能渲染一幀。即使假設(shè)工作室可以在渲染農(nóng)場中使用無限的并行渲染能力,這種周轉(zhuǎn)時間也確實會開始損害生產(chǎn)。


Moana Cloud 1/4 Res渲染,具有2400萬體素,比較了LightGraph和RenderMan 23.2。如右圖所示,云的物理性質(zhì)使得蒙特卡洛路徑跟蹤很難在合理時間范圍內(nèi)收斂

2. 爆炸

渲染爆炸是一個非常昂貴的過程,因為體積光投射的軟陰影嵌入在高度非均質(zhì)的密度場中。爆炸內(nèi)部發(fā)出的大多數(shù)光都被密度吸收。只有靠近體積邊緣或低密度區(qū)域發(fā)出的光才能在被吸收之前傳播更長的距離。這是一個使用傳統(tǒng)路徑追蹤處理起來非常復(fù)雜的情況,因為大多數(shù)路徑都無法將相機與自發(fā)射光連接起來。這個問題下面這張圖中間渲染中尤為明顯。這種高頻噪聲最終可以使用方差閾值自適應(yīng)采樣來清除,但該過程需要很長時間才能達到收斂。另一方面,我們的方法將能夠通過調(diào)整用于估計多重散射的核的大小來捕獲短路徑的貢獻。較長的路徑也將使用SPF進行適當(dāng)近似。

對于每次迭代,在當(dāng)前圖的有限可能路徑集中,光將被使用遮擋最少的路徑進行散射,這使得我們的方法在只有少數(shù)非常具體的路徑會對最終結(jié)果產(chǎn)生重大貢獻的情況下特別有效。使用我們的方法,只需幾次迭代(+25)就可以獲得非常可信但有偏差的解決方案,但就如同前文所討論的那樣,在體積場動畫的情況下結(jié)果會不穩(wěn)定。這個動畫場景需要500次LightGraph迭代才能達到穩(wěn)定的無閃爍解決方案。


渲染具有3100萬體素的爆炸

3. 上帝光

下面這個用例可能是單次散射方面最具挑戰(zhàn)性的,因為光學(xué)薄介質(zhì)填充了大部分屏幕,我們可以看到光束從一個云層流向另一個云層。在這種情況下,多重散射主要出現(xiàn)在光學(xué)厚區(qū)域,例如底部和頂部云層。多重散射的貢獻在像這樣的背光設(shè)置中尤其重要,因為它提供了有關(guān)體積物體的深度和整體形狀的重要信息。


3個定向光,Iterations:25, Points Per Kernel:2, Scatter Scale:3, Scatter Density Scale:1.0, Scatter Density Min:0.05, Scatter Density Mask Power:0.25, Volume Color:1.0, Scattering:1.5

使用RenderMan渲染的圖像即使渲染時間幾乎增加了兩倍,仍然非常嘈雜。他們的路徑跟蹤版本無論其貢獻如何,都會均勻地計算任何地方的多重散射。在現(xiàn)實世界中,這個場景將分為至少兩個渲染過程,以便正確控制。


渲染具有6500萬體素的God Rays,對比了LightGraph和RenderMan23.2的2次多重散射反彈

4. 煙柱用例

該用例的特點是煙柱具有波長依賴性,當(dāng)光線散射通過體積煙介質(zhì)時,光線的顏色會發(fā)生變化。RenderMan的圖像包含大量高頻噪聲,類似于前面示例中的噪聲。更具體地說,對于這個場景,我們看到感知噪聲被煙柱的光譜變化散射放大,噪聲不再像前面示例中那樣是單色的,這使得它更加明顯。對于左側(cè)的圖像,我們的方法通過將多重散射分量乘以散射參數(shù)的倒數(shù)來解釋這個矢量值散射,從而給出預(yù)期的色調(diào)。


3800萬個體素的煙柱渲染,RenderMan中光譜變化散射會增加感知噪聲水平渲染規(guī)格:3盞定向光,Iterations:500, Points Per Kernel:2, Scatter Scale: 2.0, Scatter Density Scale: 1.0, Scatter Density Min:0.075, Scatter Density Mask Power: 0.25, Volume Color:(0.8, 0.9, 1.0), Scattering: 0.75

5. 積雪

這個案例中嘗試使用高密度參與介質(zhì)來近似數(shù)百萬個單個冰晶的光傳輸,LightGraph允許我們能夠毫不費力地單次散射的體積密度與多次散射的體積密度分離,因此我們可以避免創(chuàng)建顯式表面來模擬雪。


LightGraph渲染雪景模擬

下面左圖顯示了雪的詳細表面,該表面由非常高密度的體積加上軟的多重散射來近似,后者通過將密度值縮放0.001以獲得。這種分離再混合在路徑追蹤是不可能的,從而不得不用一些妥協(xié)的手段解決。


六、限制和待優(yōu)化點

盡管與目前生產(chǎn)中使用的方法相比,這種方法已被證明非常強大,但它仍然有相當(dāng)多的局限性。在本節(jié)中,我們將討論系統(tǒng)的弱點以及可以對當(dāng)前架構(gòu)進行的改進。

1. 密度場掩碼

為了減少內(nèi)存使用量和計算時間,我們將多重散射存儲在低分辨率網(wǎng)格 (MSG) 中,因為它僅包含低頻信息。為了獲得正確的結(jié)果,我們?nèi)匀恍枰阡秩緯r使用高分辨率密度網(wǎng)格作為MSG的掩碼。這種掩碼操作在大多數(shù)情況下會產(chǎn)生正確的結(jié)果,但也可能會引入一些偽影。在爆炸場景中,我們觀察到爆炸底部的多重散射非常弱,而自發(fā)光貢獻顯然非常重要。當(dāng)應(yīng)用密度掩碼時,它會降低低密度區(qū)域的多重散射貢獻,從而導(dǎo)致這些區(qū)域的估計有偏差。

2. 屏幕空間和世界空間對比

該解決方案在開始實際逐像素渲染之前,預(yù)先計算整個體積的多重散射。這在渲染體積填充大部分幀的情況下非常理想。但如果我們只能看到渲染體積的中一小部分,也仍然需要計算整個體積的多重散射。同樣,如果我們考慮渲染由數(shù)千個云實例組成的完整云海,其中一些云僅作為子像素對象可見。在該方案下要做到這一點的唯一方法是計算當(dāng)前渲染隊列中云的MSG,然后盡快從內(nèi)存中清除這些數(shù)據(jù),從而為下一個隊列的MSG騰出空間。這應(yīng)該可行,但肯定會比傳統(tǒng)的路徑跟蹤需要更多的內(nèi)存。

3. 不相連的介質(zhì)孤島

生成圖表時可能出現(xiàn)的一個問題是存在不連續(xù)的島狀結(jié)構(gòu)。在由三個不連續(xù)部分組成的云的場景中,其中一部分接收強烈的直接照明(見下圖)。我們可能希望第一部分云將光散射到?jīng)]有接收直接照明的其他云部分。事實證明,由于點云僅散布在密度大于0的體素內(nèi),并且禁止超出一定搜索半徑的連接,因此兩個不連續(xù)的密度島狀結(jié)構(gòu)很可能在其LightGraph中也不連續(xù),這將阻止它們在密度島狀結(jié)構(gòu)之間傳輸輻射。LightGraph不使用點填充空白空間的原因是為了將點云分辨率集中在最重要的地方,因為點數(shù)上限為750。可能有一種方法可以連接這些密度島狀結(jié)構(gòu)而不會在空白空間中浪費點,但在撰寫本文時尚未找到優(yōu)雅的解決方案。


4. 使用緩存進行序列優(yōu)化

我們的方法以每幀彼此獨立的方式實現(xiàn)。根據(jù)需要渲染的幀序列,可以進行一些進一步的優(yōu)化。將中間步驟緩存到磁盤可以在渲染序列時節(jié)省大量時間。在體積和光照靜止而相機移動的情況下,可以將MSG寫入磁盤,然后為后續(xù)幀讀回。因此,整個序列只需要計算多重散射一次即可,并且每幀只需要重新計算一次散射。在低分辨率設(shè)置下,這甚至可以接近實時性能。在體積是靜態(tài)但相機和照明是動態(tài)的情況下,在將多重散射烘焙到網(wǎng)格之前,只需重新計算頂點照明計算和輻射擴散步驟,就可以重用生成的LightGraph迭代。通過對整個序列計算一次多重散射估計的緩慢部分,這仍然可以節(jié)省大量計算量。

5. 隨機游走

研究隨機路徑生成而不是依賴最短路徑查找將會很有趣。這肯定會消除很多限制,例如每次迭代的點數(shù),也可以產(chǎn)生一個統(tǒng)計上更合理、偏差更小的解決方案。另一方面,這種變化也可能導(dǎo)致噪聲大幅增加,并降低全局性能。由于解決方案是使用高斯核光柵化為網(wǎng)格的,即使我們使用類似的啟發(fā)式方法來確定光路,仍然可能有比路徑追蹤更快地收斂的方法。

6. GPU版本實現(xiàn)

隨著最近一波渲染器移植到GPU,我們已經(jīng)看到GPU可以大大加速可并行算法,其速度遠遠超過使用最好的CPU所能達到的速度。看看能獲得怎樣的改進將會很有趣,因為一些場景在我們當(dāng)前的實現(xiàn)下已經(jīng)接近實時性能。這可能為交互式應(yīng)用程序打開可能性,以查看和操作使用多重散射渲染的體積。

7. 考慮幾何遮蔽

由于時間限制,系統(tǒng)中尚未實現(xiàn)幾何遮擋,但擴展應(yīng)該相當(dāng)簡單。在執(zhí)行算法的Raymarch Graph Edges步驟之前,只需將LightGraph的每個邊緣投射到場景中的幾何圖形上即可。如果光線擊中位于形成邊緣的兩個點之間的幾何圖形,則透射率應(yīng)設(shè)置為0,這相當(dāng)于光線行進無限密度的體素。然后,SPF算法將避開此邊緣,就像它通常會避開非常遮擋的邊緣一樣。MSG的低分辨率可能會導(dǎo)致遮擋物表面周圍漏出少量光線,但這不會產(chǎn)生任何明顯的偽影。

8. 各項異性相位

我們的方法目前不支持各向異性相函數(shù),因此將所有體積視為各向同性。做出這一選擇是為了簡化系統(tǒng),但這也可能是一種直接的擴展。最短路徑查找解決方案只需要考慮相函數(shù),同時通過查找連接邊之間的角度來評估圖的不同分支選項。這肯定會增加計算方面的負擔(dān),但使用當(dāng)前架構(gòu)實現(xiàn)應(yīng)該不會太難。

七、方案總結(jié)

本文引入了LightGraph方法,它使用SPF(最短路徑查找)來近似大光學(xué)厚度和薄非均勻參與介質(zhì)中的多重散射。該方法需要少量的預(yù)計算,在幾秒鐘內(nèi)(而不是幾個小時)就可以估計出多重散射。用戶參數(shù)的數(shù)量保持在最低限度,同時仍保持非常高的靈活性。通過依靠高效的光線追蹤技術(shù)來評估單次散射,并使用近似值來估計多重散射,以便從這兩種技術(shù)的優(yōu)勢中受益。以上實現(xiàn)主要基于一個合理的假設(shè),即多重散射是一種非常低頻的現(xiàn)象,這使得它特別適合密度估計算法。實驗表明,這種技術(shù)可以產(chǎn)生視覺上引人注目的無噪聲圖像,而計算成本僅為蒙特卡羅積分的一小部分,這使其成為視覺效果行業(yè)的潛在實用解決方案。對于LightGraph,這里選擇了偏差而不是方差,靈活而不是簡化,并且“好看”而不是物理精確。

參考

項目Github地址


https://github.com/asiroisvigneux/LightGraph?tab=readme-ov-file

《Precomputed multiple scattering for light simulation in participating medium》


https://dl.acm.org/doi/10.1145/3084363.3085037

《Real-time multiple scattering in participating media with illumination networks》


https://dl.acm.org/doi/10.5555/2383654.2383693

《參與介質(zhì)中的實時多重散射和照明網(wǎng)絡(luò)》


https://zhuanlan.zhihu.com/p/13905065710

《Flux-Limited Diffusion for Multiple Scattering in Participating Media》


https://arxiv.org/abs/1403.8105

《Deep scattering: rendering atmospheric clouds with radiance-predicting neural networks》


https://dl.acm.org/doi/10.1145/3130800.3130880

《Efficient simulation of light transport in scenes with participating media using photon maps》


https://dl.acm.org/doi/10.1145/280814.280925

《A lighting model for general participating media》

https://dl.acm.org/doi/10.1145/1053427.1053446

文末,再次感謝Angelou 的分享, 作者主頁: https://www.zhihu.com/people/cong-ba-luo-ke-dao-lang-man-de-ni, 如果您有任何獨到的見解或者發(fā)現(xiàn)也歡迎聯(lián)系我們,一起探討。(QQ群: 793972859 )。

近期精彩回顧

萬象更新UWA Gears Realtime模式實用小技巧(二)

【萬象更新】不妥協(xié)每一毫秒的性能 不浪費每一字節(jié)的流量

Unreal Engine Shader 開發(fā)技巧

【學(xué)堂上新】從藝術(shù)資源到性能狂飆!

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
洪其昌密訪北京,賴清德要與馬英九爭當(dāng)“統(tǒng)一功臣”?

洪其昌密訪北京,賴清德要與馬英九爭當(dāng)“統(tǒng)一功臣”?

再遇歷史
2025-06-17 16:44:53
狂抄小米作業(yè),東風(fēng)日產(chǎn)咸魚翻身

狂抄小米作業(yè),東風(fēng)日產(chǎn)咸魚翻身

藍字計劃
2025-06-18 16:59:24
阿媒:浦和隊長賽前拒絕與河床球員握手,卻在比賽中失誤送禮

阿媒:浦和隊長賽前拒絕與河床球員握手,卻在比賽中失誤送禮

雷速體育
2025-06-18 07:00:19
全紅嬋回家摘荔枝助農(nóng)618!因傷退賽被罵,哥哥發(fā)文力挺妹妹

全紅嬋回家摘荔枝助農(nóng)618!因傷退賽被罵,哥哥發(fā)文力挺妹妹

趣文說娛
2025-06-18 15:54:58
突發(fā)!6類中國出口商品被美國列入黑名單,稅率最低86%,最高504%

突發(fā)!6類中國出口商品被美國列入黑名單,稅率最低86%,最高504%

壹航運
2025-06-18 15:14:26
中日之戰(zhàn),雖然張子宇身高堪稱獨一檔,但也暴露兩大致命問題!

中日之戰(zhàn),雖然張子宇身高堪稱獨一檔,但也暴露兩大致命問題!

田先生籃球
2025-06-18 21:59:28
烏軍F16擊落俄軍蘇35,讓美軍明白:殲10C掛載霹靂15,可摧毀F35

烏軍F16擊落俄軍蘇35,讓美軍明白:殲10C掛載霹靂15,可摧毀F35

胖福的小木屋
2025-06-17 23:50:06
中國寄生蟲最多的5種食物,很多人還特愛吃,建議大家盡量少吃

中國寄生蟲最多的5種食物,很多人還特愛吃,建議大家盡量少吃

農(nóng)夫也瘋狂
2025-06-18 11:11:47
震撼決定!威斯布魯克拒絕天價高薪,忠誠無價引爆歡呼!

震撼決定!威斯布魯克拒絕天價高薪,忠誠無價引爆歡呼!

星Xin辰大海
2025-06-17 19:13:42
凈流入A股第一!002463,漲停

凈流入A股第一!002463,漲停

新浪財經(jīng)
2025-06-18 17:16:55
龍泉山失聯(lián)男子已找到!被曝死狀慘烈,最后畫面曝光,死因很蹊蹺

龍泉山失聯(lián)男子已找到!被曝死狀慘烈,最后畫面曝光,死因很蹊蹺

戶外釣魚哥阿勇
2025-06-18 12:27:26
辣眼睛!印度女大學(xué)生沙灘游玩被10人輪奸,男友在旁被捆綁毆打

辣眼睛!印度女大學(xué)生沙灘游玩被10人輪奸,男友在旁被捆綁毆打

派大星紀(jì)錄片
2025-06-18 17:36:03
特朗普邀請中俄加入G7,中俄早已心中有數(shù)

特朗普邀請中俄加入G7,中俄早已心中有數(shù)

楊風(fēng)
2025-06-18 22:56:48
曝山東一公安領(lǐng)導(dǎo)出軌多名女性,畫面流出,身份被扒,繼女發(fā)聲

曝山東一公安領(lǐng)導(dǎo)出軌多名女性,畫面流出,身份被扒,繼女發(fā)聲

博士觀察
2025-06-17 18:04:25
42歲陳自瑤無濾鏡美顏,雖然比劇里多了皺紋,但是面還是很緊致的

42歲陳自瑤無濾鏡美顏,雖然比劇里多了皺紋,但是面還是很緊致的

小椰的奶奶
2025-06-18 00:34:19
南京一退休阿姨感染艾滋病,查明原因,醫(yī)生:這個細節(jié)被忽視了

南京一退休阿姨感染艾滋病,查明原因,醫(yī)生:這個細節(jié)被忽視了

黃家湖的憂傷
2025-04-15 17:27:13
越美關(guān)稅談判驚天突破!越南簽“生死狀”,徹底封堵中國轉(zhuǎn)口貿(mào)易

越美關(guān)稅談判驚天突破!越南簽“生死狀”,徹底封堵中國轉(zhuǎn)口貿(mào)易

智觀科技
2025-06-18 12:31:05
每年70萬人因肺癌而死!再次勸告:天熱寧可吹吹風(fēng)扇,也別做6事

每年70萬人因肺癌而死!再次勸告:天熱寧可吹吹風(fēng)扇,也別做6事

嘆為觀止易
2025-06-17 11:44:21
國安部披露細節(jié)!間諜用Word文檔套取我國敏感數(shù)據(jù)

國安部披露細節(jié)!間諜用Word文檔套取我國敏感數(shù)據(jù)

每日經(jīng)濟新聞
2025-06-17 13:02:47
“五物不送人,后代一直富”,這五種東西千萬不要送人!有道理嗎

“五物不送人,后代一直富”,這五種東西千萬不要送人!有道理嗎

聞心品閣
2025-06-17 07:22:54
2025-06-18 23:56:50
侑虎科技UWA incentive-icons
侑虎科技UWA
游戲/VR性能優(yōu)化平臺
1455文章數(shù) 984關(guān)注度
往期回顧 全部

科技要聞

別叫我互聯(lián)網(wǎng)公司,京東的野心藏不住了

頭條要聞

男子4S店買法拉利3年提不了車 店方:想退款先幫忙賣車

頭條要聞

男子4S店買法拉利3年提不了車 店方:想退款先幫忙賣車

體育要聞

36歲鄧卓翔率隊9輪拿17分 從墊底升第9

娛樂要聞

前老板舉報李雪琴欠190萬轉(zhuǎn)移公司財產(chǎn)

財經(jīng)要聞

被爆添加毒原料后相宜本草高管先后出走

汽車要聞

燈光技術(shù)升級還有插混版本 全新奧迪Q3預(yù)計明年國產(chǎn)

態(tài)度原創(chuàng)

手機
數(shù)碼
時尚
房產(chǎn)
健康

手機要聞

榮耀Magic V5定檔,還有平板、手表一起發(fā)

數(shù)碼要聞

小米平板 7S Pro 現(xiàn)身 Geekbench:3.4GHz 玄戒 O1,16GB 內(nèi)存

從桔梗裙到流光裙,慵懶又顯瘦,微胖女生閉眼入!

房產(chǎn)要聞

創(chuàng)紀(jì)錄了!海南單日賣地44億!保利、方大瘋狂出手!

呼吸科專家破解呼吸道九大謠言!

無障礙瀏覽 進入關(guān)懷版 主站蜘蛛池模板: 孙吴县| 赫章县| 扎鲁特旗| 衡东县| 多伦县| 固镇县| 大关县| 玉山县| 富民县| 监利县| 凌云县| 洪雅县| 凤翔县| 杨浦区| 五大连池市| 民乐县| 马鞍山市| 汝阳县| 兴业县| 五华县| 资阳市| 徐水县| 象山县| 湖南省| 弥渡县| 江津市| 天峨县| 安阳县| 无棣县| 建德市| 桦川县| 耿马| 湘西| 墨竹工卡县| 远安县| 晋中市| 和田县| 琼海市| 前郭尔| 忻城县| 论坛|