国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于推遲重采樣的時空路徑復(fù)用蓄水池算法

2024-12-30 00:00:00劉雙嘉馬寧李方釧張嚴(yán)辭
計算機(jī)應(yīng)用研究 2024年12期

摘 要:現(xiàn)有的基于蓄水池的時空重要性重采樣(ReSTIR)算法在渲染具有光澤(glossy)材質(zhì)的場景表面時,難以兼顧渲染質(zhì)量和性能。為此提出了一種基于推遲重采樣的時空路徑復(fù)用蓄水池算法。其基本思想是僅復(fù)用起點為漫反射(diffuse)材質(zhì)的路徑和子路徑,利用diffuse采樣分布的弱方向性,減少采樣分布差異。具體而言,該算法將樣本獲取和重采樣計算,從著色點推遲到路徑上第一個diffuse材質(zhì)的路徑頂點。此外,提出了一種路徑選擇方法,通過選擇推遲距離更小的路徑,來增強(qiáng)重采樣結(jié)果對渲染結(jié)果的影響。實驗結(jié)果表明,與其他ReSTIR算法相比,該算法能夠以較低的性能開銷,取得較高質(zhì)量的glossy表面渲染結(jié)果,在實時渲染中具有更高的實用價值。

關(guān)鍵詞:實時渲染;路徑追蹤;路徑復(fù)用;光澤材質(zhì)

中圖分類號:TP391.41"" 文獻(xiàn)標(biāo)志碼:A

文章編號:1001-3695(2024)12-043-3843-08

doi: 10.19734/j.issn.1001-3695.2024.02.0064

Spatiotemporal path-reusing reservoir algorithm based on deferred resampling

Liu Shuangjiaa, Ma Ninga, Li Fangchuana, Zhang Yancia, b

(a. College of Computer Science, b. National Key Laboratory of Fundamental Science on Synthetic Vision, Sichuan University, Chengdu 610065, China)

Abstract:Existing reservoir-based spatiotemporal importance resampling (ReSTIR) algorithms struggle to balance rendering quality and performance when rendering scenes with glossy materials. To address this issue, this paper proposed a spatiotemporal path-reusing reservoir algorithm based on deferred resampling. The basic idea was to only reuse paths and sub-paths with a diffuse starting point, leveraging the weak directionality of diffuse sample distribution to reduce sample distribution differences. Specifically, this algorithm deferred sampling and resampling from the shading point to the first diffuse vertex on the path. In addition, this paper proposed a path-selecting method to enhance the impact of resampling results on rendering results by selecting paths with smaller deferred distances. The experimental results show that compared to other ReSTIR algorithms, the proposed algorithm can achieve high-quality rendering results of glossy surfaces with low overhead, making it more valuable in real-time rendering.

Key words:real-time rendering; path tracing; ReSTIR; glossy material

0 引言

近幾年,基于蓄水池的時空重要性重采樣(ReSTIR)[1~3]算法成為了實時渲染領(lǐng)域的熱門研究課題。由于基于蒙特卡羅洛積分的路徑追蹤(path tracing)算法的收斂速度較慢,其渲染結(jié)果往往方差較大,表現(xiàn)為渲染圖像中的噪聲較多。ReSTIR算法通過復(fù)用時域和空域上的路徑對應(yīng)的蓄水池,減少渲染結(jié)果中的方差。這使得其能夠以低采樣率(sample per pixel,SPP)的路徑追蹤采樣結(jié)果,呈現(xiàn)出低方差、高質(zhì)量的渲染結(jié)果。

然而,渲染光澤(glossy)材質(zhì)的場景表面為ReSTIR算法帶來了挑戰(zhàn)。由于glossy材質(zhì)的采樣分布通常較為復(fù)雜,在glossy材質(zhì)的場景表面上執(zhí)行路徑復(fù)用,可能會導(dǎo)致方差進(jìn)一步增加。而現(xiàn)有的ReSTIR算法都難以在glossy表面上兼顧渲染質(zhì)量和性能。例如,ReSTIR GI[2]假設(shè)場景表面都為漫反射(diffuse)材質(zhì),減少了執(zhí)行路徑復(fù)用的開銷,但也導(dǎo)致其在glossy表面上的渲染質(zhì)量很低。而ReSTIR PT[3]使用了路徑重建方法,使得其在glossy表面上的渲染質(zhì)量較高,但帶來了與路徑重建有關(guān)的巨額開銷。

為了在glossy表面上以較低開銷取得高質(zhì)量的渲染結(jié)果,本文提出了一種新的基于推遲重采樣的路徑復(fù)用蓄水池算法,名為ReSTIR OG(optimized for glossy material)。其基本思想是只復(fù)用起點為diffuse材質(zhì)的路徑和子路徑。該算法使得樣本獲取和重采樣計算被推遲到diffuse材質(zhì)的路徑頂點上,不再受glossy采樣分布的影響。為了實現(xiàn)該基本思想,本文提出了復(fù)用點(reuse point)的概念,用于獲取起點為diffuse材質(zhì)的子路徑,并根據(jù)復(fù)用點推導(dǎo)出推遲重采樣后的渲染計算公式。另外,本文還提出了一種基于復(fù)用長度(reuse length)的路徑選擇方法,進(jìn)一步增強(qiáng)重采樣結(jié)果對渲染結(jié)果的影響,并剔除沒有復(fù)用點的路徑。

總而言之,本文的貢獻(xiàn)如下:a)提出了一種新的路徑復(fù)用思路,能夠以較低的開銷減少glossy表面渲染結(jié)果的方差,獲取高質(zhì)量渲染結(jié)果;b)基于上述方法,推導(dǎo)出了一種基于路徑積分的推遲重采樣的渲染計算公式,簡化了渲染結(jié)果的計算;c)基于推導(dǎo)出的渲染計算公式,提出了一種路徑選擇方法,能夠進(jìn)一步提高渲染質(zhì)量。

1 相關(guān)工作

如何減少路徑追蹤算法的渲染結(jié)果中的方差,是實時渲染領(lǐng)域長久以來一直致力于研究的問題?,F(xiàn)有的主流研究方向有:ReSTIR、重要性采樣和圖像降噪。

1.1 基于蓄水池的時空重要性重采樣

ReSTIR算法本質(zhì)是一種基于重要性重采樣(resampled importance sampling, RIS)[4]算法的蓄水池[5,6]算法,其渲染結(jié)果的通用計算公式為

∫f(x-i)=f(Y)WY(1)

通過路徑復(fù)用,ReSTIR算法能夠得到更好的重采樣樣本Y以及無偏貢獻(xiàn)權(quán)重WY,從而減少渲染結(jié)果中的方差。Bitterli等人[1]首先提出了在屏幕空間的ReSTIR算法用于計算直接光照,將隨機(jī)采樣得到的光源采樣點作為樣本,并在面光源較多的場景中得到了質(zhì)量較高的直接光照渲染結(jié)果。Ouyang等人[2]將ReSTIR算法擴(kuò)展到了間接光照計算中,在diffuse表面上得到了不錯的結(jié)果,但在glossy表面上反而增加了渲染結(jié)果中的方差。而Lin等人[3]提出了基于移位映射的路徑重建方法,進(jìn)一步完善了對路徑的處理,在glossy表面上得到質(zhì)量較高的渲染結(jié)果,但引入了高昂的性能開銷。一些方法也嘗試將ReSTIR算法應(yīng)用到非屏幕空間領(lǐng)域。文獻(xiàn)[7,8]將ReSTIR算法從屏幕空間擴(kuò)展到了世界空間,減少了樣本之間的幾何差異。而Lin等人[9]則又將ReSTIR算法應(yīng)用在體渲染中,提高了體渲染的渲染質(zhì)量。

1.2 重要性采樣

重要性采樣(importance sampling)根據(jù)目標(biāo)分布的采樣分布,調(diào)整并指導(dǎo)路徑的實際采樣過程,從而提高采樣結(jié)果。不同的重要性采樣算法會使用不同的目標(biāo)分布指導(dǎo)采樣。

雙向散射分布函數(shù)(bidirectional scattering distribution function, BSDF)重要性采樣一般將由材質(zhì)得到的BSDF作為自己的目標(biāo)分布。其最常用的策略是使用微表面模型(microfacet model)[10]中的法線分布函數(shù)[11,12]。在此策略基礎(chǔ)上,Heitz等人[13]提出了基于可見法線分布函數(shù)(visible normal distribution function, VNDF)的采樣方法,并啟發(fā)了后續(xù)許多算法[14, 15]。Dupuy等人[16]在分析了法線分布的形狀特點后,簡化了采樣過程。Eto等人[17]通過限制采樣范圍,減少了無效樣本,進(jìn)一步提高了VNDF的采樣效率。

路徑引導(dǎo)(path guiding)算法一般將光照輻射度(radiance)或者光照輻射度和BSDF的乘積作為自己的目標(biāo)分布。其一般需要積累樣本來計算目標(biāo)分布的概率分布,并指導(dǎo)后續(xù)采樣。文獻(xiàn)[18,19]使用高斯混合模型(Gaussian mixture model,GMM)來表示光照輻射度的概率分布。Müller等人[20]通過將場景分解成八叉樹,減少了計算概率分布需要的性能開銷。Vorba等人[21]又使用四叉樹達(dá)到了同樣的目的。Fan等人[22]則將路徑引導(dǎo)算法用于解決焦散問題,得到了較好的渲染結(jié)果。而隨著近年來深度學(xué)習(xí)變得越發(fā)熱門,部分學(xué)者[23~26]成功將深度學(xué)習(xí)應(yīng)用到了路徑引導(dǎo)算法中。盡管它們的性能不足以用于實時應(yīng)用,但都得到了質(zhì)量較高的渲染結(jié)果。

1.3 圖像降噪

圖像降噪(image denoising)使用降噪濾波對渲染圖像進(jìn)行后處理,直接減少渲染圖像中的噪聲。有許多基于回歸(regression-based)的圖像降噪算法[27~29]在采樣率較高時有著不錯的渲染結(jié)果,但當(dāng)采樣數(shù)較低時,它們的結(jié)果很難讓人滿意。文獻(xiàn)[30,31]使用時空復(fù)用來增加降噪所需的噪點,使得其能夠在更低的采樣率下對渲染結(jié)果降噪,但在較為復(fù)雜的場景中,這些算法的渲染質(zhì)量依然較低。文獻(xiàn)[32,33]嘗試額外緩存路徑空間的信息用于指導(dǎo)降噪,來彌補(bǔ)圖像空間的信息缺失,并取得了不錯的效果。但這些算法一般性能開銷較大,并且會將所使用的濾波算法和渲染算法耦合起來,導(dǎo)致通用性下降。

2 算法概述

ReSTIR算法基于RIS的重采樣理論,來復(fù)用其他像素的路徑。該重采樣理論的核心思想是,對由原分布p(x)生成的樣本集合{Xi}Mi=0進(jìn)行重采樣,使得重采樣樣本Y對應(yīng)的無偏貢獻(xiàn)權(quán)重WY收斂于目標(biāo)分布p^(x)。重采樣后,Y的樣本信息和WY都會緩存在蓄水池中。為了易于收斂,要求所有樣本Xi獨立同分布,并且原分布p(x)和目標(biāo)分布p^(x)要盡量匹配。

然而,在實際應(yīng)用中,ReSTIR算法卻可能會產(chǎn)生收斂問題。在ReSTIR算法中,原分布p(x)為著色點的采樣分布的概率密度函數(shù)(probability density function,PDF);目標(biāo)分布p^(x)為渲染方程的被積函數(shù)f(x),f(x)的部分計算項也由著色點的采樣分布決定。由于材質(zhì)和幾何的不同,不同像素的著色點通常有著不同的采樣分布。這使得來自不同像素的樣本Xi,實際上會對應(yīng)不同的原分布pi(x)。pi(x)之間的差異會破壞樣本獨立同分布的前提條件,使得ReSTIR算法無法完全保證收斂。

而當(dāng)存在glossy材質(zhì)的著色點時,收斂問題會變得更加嚴(yán)重。如圖1所示,著色點為glossy材質(zhì),此時pi(x)和pp^(x)都對應(yīng)glossy采樣分布。由于glossy采樣分布的方向性較強(qiáng),不同著色點之間可能產(chǎn)生較大的采樣分布差異。pi(x)之間的差異也會因此較大(如圖1(c)所示),導(dǎo)致收斂變得困難。更糟糕的是,p^(x)受采樣分布差異的影響,也會具有較強(qiáng)的方向性。pi(x)會更難匹配pp^(x)(如圖1(b)所示),導(dǎo)致收斂難度進(jìn)一步增加,甚至無法收斂。因此,ReSTIR算法需要減少采樣分布差異帶來的影響,才能減少glossy表面渲染結(jié)果的方差,得到高質(zhì)量渲染結(jié)果。

現(xiàn)有的ReSTIR算法無法在低性能開銷下,較好地解決采樣分布差異的問題。例如,ReSTIR GI算法[2]通過假設(shè)所有場景表面都是diffuse材質(zhì),避免了解決采樣分布差異的開銷,但增加了glossy表面渲染結(jié)果的方差。另一邊,ReSTIR PT算法[3]使用路徑重建方法,將所有樣本映射到同一采樣分布下,減少了glossy表面的方差,但也帶來了與路徑重建有關(guān)的昂貴的性能開銷。

為了以較低開銷得到高質(zhì)量的glossy表面渲染結(jié)果,本文提出一種基于推遲重采樣的路徑復(fù)用蓄水池算法。其基本思想是,只復(fù)用起點為diffuse材質(zhì)的路徑和子路徑,從而在不使用路徑重建等較高開銷方法的情況下,減少采樣分布差異。對于原本起點為diffuse材質(zhì)的路徑,該路徑會直接用于路徑復(fù)用;而對于起點為glossy材質(zhì)的路徑,會獲取該路徑上起點為diffuse材質(zhì)的子路徑用于路徑復(fù)用(如圖2(a)所示,被復(fù)用路徑不再是原完整路徑)。用于復(fù)用的子路徑被稱為當(dāng)前路徑的目標(biāo)子路徑。

該算法相當(dāng)于將樣本獲取和重采樣計算,從著色點推遲到diffuse材質(zhì)的路徑頂點(如圖1(a)和圖2(a)所示,采樣點的位置沿路徑向后推移),此時pi(x)和p^(x)都對應(yīng)diffuse采樣分布。由于diffuse采樣分布的方向性較弱,能有效減少pi(x)之間的差異(如圖2(c)所示),提高pi(x)和p^(x)的匹配程度(如圖2(b)所示)。實現(xiàn)推遲重采樣需要解決以下關(guān)鍵問題:

a)如何獲取每條路徑的目標(biāo)子路徑?

b)如何在推遲重采樣后計算渲染結(jié)果?

為了解決上述問題,本文將每條路徑上的第一個diffuse材質(zhì)的路徑頂點定義為復(fù)用點(reuse point)。對于問題a),本文獲取每條路徑上以復(fù)用點為起點的子路徑,將其作為目標(biāo)子路徑。對于問題b),本文在復(fù)用點的基礎(chǔ)上,根據(jù)路徑積分推導(dǎo)出推遲重采樣的渲染計算公式。另外,針對推導(dǎo)出的渲染計算公式的特點,本文提出了一種路徑選擇方法。該方法會從被復(fù)用路徑的蓄水池集合中,選擇路徑質(zhì)量最高的路徑對應(yīng)的蓄水池,代替當(dāng)前像素的初始蓄水池,計算最終渲染結(jié)果,從而進(jìn)一步提高glossy表面的渲染質(zhì)量。

如圖3所示,本文算法的總體流程可以分為路徑生成、時空采樣、路徑選擇、路徑復(fù)用和渲染計算五個階段。

a)路徑生成階段。每個像素生成初始路徑0[x00,x01,x02,...,x0t](t為最大路徑長度),找到該路徑的復(fù)用點和目標(biāo)子路徑,并和復(fù)用長度等路徑信息一起構(gòu)成初始蓄水池R0。

b)時空采樣階段。在屏幕空間對上一幀緩存的蓄水池結(jié)果進(jìn)行采樣,獲取蓄水池集合{Ri}Mi=1。時域采樣通過運(yùn)動向量(motion vector)獲取當(dāng)前像素對應(yīng)的上一幀像素的蓄水池R1;空域采樣以上一幀像素為原點,隨機(jī)采樣并獲取其屏幕空間上周圍像素的蓄水池集合{Ri}Mi=2。

c)路徑選擇階段。獲取初始蓄水池R0,與蓄水池集合{Ri}Mi=1合并,構(gòu)成完整集合{Ri}Mi=0。然后根據(jù)路徑選擇方法,從{Ri}Mi=0中選擇取一個蓄水池Rs取代初始蓄水池R0進(jìn)行最終渲染結(jié)果的計算。

d)路徑復(fù)用階段。獲取{Ri}Mi=0對應(yīng)的樣本集合{Xi}Mi=0,然后根據(jù)重采樣概率P從{Xi}Mi=0中選取重采樣樣本Y,并計算Y的無偏貢獻(xiàn)權(quán)重WY。樣本Y會取代樣本Xs成為蓄水池Rs中的新樣本。此時的Rs是當(dāng)前像素在這一幀的路徑復(fù)用結(jié)果。每個像素的Rs都會被緩存下來,用于下一幀的時空采樣。

e)渲染計算階段。讀取每個像素的蓄水池Rs,根據(jù)本文推導(dǎo)出的推遲重采樣的渲染計算公式,計算最終的渲染結(jié)果。

3 基于推遲重采樣的路徑復(fù)用蓄水池算法

3.1 目標(biāo)子路徑及其蓄水池獲取

在路徑復(fù)用前,需要獲取每條路徑實際用于路徑復(fù)用的目標(biāo)子路徑及其對應(yīng)的蓄水池。在實際場景中,一條路徑可能存在多條在diffuse表面上的子路徑。為了保證推遲重采樣的有效性以及簡化子路徑的獲取,本文將每條路徑上第一個diffuse材質(zhì)的路徑頂點定義為復(fù)用點,并將以復(fù)用點為起點的子路徑作為目標(biāo)子路徑。

本文使用粗糙度(roughness)來決定路徑頂點的材質(zhì)類型。在常用材質(zhì)屬性中,粗糙度對diffuse和glossy材質(zhì)的劃分有著決定性的影響。通過判斷粗糙度,可以快速準(zhǔn)確地找到每條路徑上的復(fù)用點。

對于任意路徑x-i,定義其第j個路徑頂點為xij,xij的材質(zhì)粗糙度定義為αij,則可以得到材質(zhì)類型劃分函數(shù)為

g(αij)=1"" if αij≥αmax0"" if αijlt;αmax(2)

其中:αmax為當(dāng)前場景預(yù)設(shè)的粗糙度閾值(通常αmax=0.2)。如果g(αij)=1,則αij對應(yīng)的路徑頂點xij為diffuse材質(zhì),否則為glossy材質(zhì)。由于復(fù)用點為路徑上第一個diffuse材質(zhì)的路徑頂點,則可以推斷出復(fù)用點到路徑頂點xi0的路徑長度應(yīng)當(dāng)為:

ri=r(x-i)=n if j[0,n) has g(αij)=0 and g(αin)=1-1 if j≥0 has g(αij)=0(3)

因此,每條路徑上的第ri個路徑頂點xiri即為復(fù)用點,同時其對應(yīng)的路徑長度ri被定義為復(fù)用長度(reuse length)。而以xiri為起點的子路徑,即是路徑x-i的目標(biāo)子路徑。

在路徑復(fù)用時,x-i的目標(biāo)子路徑的樣本會代替原完整路徑的樣本進(jìn)行重采樣計算。在復(fù)用點xiri的基礎(chǔ)上,x-i的目標(biāo)子路徑的樣本Xi定義為

Xi[VXi,NXi,LXi,WXi,M](4)

其中:VXi為路徑頂點xiri+1的世界空間坐標(biāo);NXi為xiri+1的世界空間法線;LXi為Xi對應(yīng)的目標(biāo)子路徑的出射光照輻射度積分,式(8)詳細(xì)定義了其計算方式;WXi為Xi的無偏貢獻(xiàn)權(quán)重,其在重采樣前為Xi對應(yīng)的PDF的采樣結(jié)果的倒數(shù),即WXi=1/p(Xi)。在路徑生成階段時,樣本Xi會被緩存下來用于后續(xù)階段。

同時,為了減少重采樣計算的實際計算量,并提供必要信息給后續(xù)的路徑選擇階段和渲染計算階段,x-i的部分信息會作為路徑信息Ix-i,和樣本Xi一起緩存下來。Ix-i定義為

Ix-i[L-ri,η-ri,H,ri](5)

其中:ri為x-i的前綴輻射度(prefix radiance),代表復(fù)用點xiri之前的子路徑的輻射度總和,η-ri為x-i的前綴權(quán)重(prefix weight),式(10)詳細(xì)定義了它們;H為復(fù)用點xiri的數(shù)據(jù)索引,包括頂點數(shù)據(jù)索引和材質(zhì)索引;ri為x-i的復(fù)用長度。

路徑x-i的樣本Xi和路徑信息Ix-i,共同構(gòu)成其對應(yīng)像素的蓄水池Ri。

Ri[Xi,Ix-i](6)

每一條路徑x-i都對應(yīng)一個蓄水池Ri。由蓄水池Ri計算得到的結(jié)果,即是x-i對應(yīng)像素的渲染結(jié)果。而任意像素的初始蓄水池R0的計算結(jié)果,即該像素的初始采樣渲染結(jié)果。通過后續(xù)的重采樣計算和路徑選擇方法,會得到新的樣本和路徑信息,來更新初始蓄水池R0的數(shù)據(jù)。更新后的蓄水池既是當(dāng)前像素的路徑復(fù)用結(jié)果,也決定了當(dāng)前像素的最終渲染結(jié)果。

相比于ReSTIR GI(目前開銷最小的ReSTIR算法),本文算法在空間開銷上,只額外增加了路徑信息Ix-i的存儲開銷。在具體實現(xiàn)中,ri為3分量float型數(shù)據(jù),大小為12 Byte;ri為3分量float型數(shù)據(jù),大小為12 Byte;H為4分量8 bit uint型數(shù)據(jù),大小為4 Byte;ri為1分量32 bit int型數(shù)據(jù),大小為4 Byte。因此,相比于ReSTIR GI,本文算法每個像素會增加32 Byte的存儲開銷。由于會緩存上一幀的數(shù)據(jù),所以,在分辨率為1 920×1 080時,本文總共會增加126 MB左右的存儲開銷。在實際應(yīng)用中,該開銷相當(dāng)于只增加了一張高精度貼圖。

3.2 推遲重采樣的渲染結(jié)果計算

由于樣本獲取和重采樣計算被推遲到了復(fù)用點上,本文算法無法像以往的ReSTIR算法一樣,直接根據(jù)式(1)計算渲染結(jié)果。所以,需要推導(dǎo)出新的渲染計算公式,用于計算推遲重采樣后的渲染結(jié)果。

根據(jù)路徑積分,可以推導(dǎo)出推遲重采樣的渲染計算公式。任意路徑x-i在重采樣前的渲染計算公式可以用路徑積分表示為

∫f(x-i)=∑td=0Ωd f(x-di)dx-di(7)

其中:x-di代表路徑x-i上從xi0到xid的子路徑。根據(jù)蒙特卡羅算法可以得出該路徑積分的離散形式:

∫f(x-i)=∑td=0Lid∏dj=0ηij(8)

其中:

ηij=fbrdf(xij)p(xij)(9)

其中:Lid代表從xid+1到xid的光照輻射度;fbrdf(xij)代表生成從xij到xij+1的子路徑時的雙向散射分布函數(shù)(bidirectional reflection distribution function, BRDF)的采樣結(jié)果,通過Ix-i中的數(shù)據(jù)索引H采樣計算得到;p(xij)代表生成從xij到xij+1的子路徑時的PDF的采樣結(jié)果。以復(fù)用點xiri為分界點,將樣本Xi的相關(guān)變量代入式(8),則可以進(jìn)一步推導(dǎo)出新路徑積分形式

∫f(x-i)=∑ri-1d=0Lid∏dj=0ηijprefix radiance+∏ri-1j=0ηijprefix weight·fbrdf(xiri)LXiWXisuffix radiance(10)

其中:出射光照輻射度積分LXi定義為

LXi=∑td=riLid∏dj=0ηij∏rj=0ηij(11)

通過式(10),路徑x-i的原路徑積分∫f(x-i)被分為了前綴輻射度(prefix radiance)和后綴輻射度(suffix radiance)兩部分。在實際應(yīng)用中,通常WXi=1/p(Xi)=1/p(xiri)。

由于只有目標(biāo)子路徑會實際參與路徑復(fù)用,而這些目標(biāo)子路徑都在diffuse表面上,則可以認(rèn)為推遲后的重采樣滿足ReSTIR算法的理想情況,即所有樣本都對應(yīng)diffuse采樣分布。因此在復(fù)用點上執(zhí)行重采樣計算時,可以不再對目標(biāo)子路徑及其樣本做額外處理。此時重采樣樣本Y[VY,NY,LY,WY,M]可以直接取代原樣本Xi[VXi,NXi,LXi,WXi,M],并且式(10)中的前綴輻射度和前綴權(quán)重已經(jīng)緩存在了每條路徑的路徑信息Ix-i[L-ri,η-ri,H,ri]中,可以直接代入式(10),避免二次計算。

對每個像素而言,其初始路徑x-0對應(yīng)的路徑積分f(x-0),既是該像素在重采樣前的渲染計算公式。因此將Y的變量LY、WY,以及x-0的路徑信息變量r0、r0,代入∫f(x-0)后,可以推導(dǎo)出每個像素的推遲重采樣的渲染計算公式為

∫f(x-0)=r0+r0fbrdf(x0r0)LYWY(12)

從式(12)可以看出,在重采樣后,前綴輻射度r0和前綴權(quán)重r0只和當(dāng)前初始路徑x-0有關(guān)。因此可以在路徑生成階段直接緩存r0和r0,以減少計算最終渲染結(jié)果時的計算量。

同時,由于所有樣本的p(Xi)都對應(yīng)于diffuse采樣分布,重采樣樣本Y的選取和無偏貢獻(xiàn)權(quán)重WY的計算不再受glossy表面的采樣分布影響。因此可以直接根據(jù)RIS算法,對蓄水池集合{Ri}Mi=0對應(yīng)的樣本集合{Xi}Mi=0進(jìn)行重采樣。此時,選取Y時所用的重采樣概率P定義為

P=wi∑Mj=0wj(13)

其中:重采樣權(quán)重wi定義為

wi=1Mp^(Xi)p(Xi)(14)

目標(biāo)分布p^(x)通常為f(x)或者與f(x)正相關(guān)的函數(shù)。而無偏貢獻(xiàn)權(quán)重WY可直接定義為

WY=1p^(Y)∑Mi=0wi(15)

根據(jù)式(12)可以看出,重采樣得到的LY和WY只會直接作用于diffuse材質(zhì)的復(fù)用點x0r0。此時,重采樣過程和渲染結(jié)果計算都不再受glossy采樣分布的影響,渲染質(zhì)量得以提高。在實際應(yīng)用中,隨著被復(fù)用路徑的數(shù)量(即M)不斷增加,WY的計算結(jié)果會變得更加準(zhǔn)確,最終glossy表面的渲染結(jié)果的方差也會隨之減少。

而重采樣結(jié)果Y[VY,NY,LY,WY,M]會更新當(dāng)前像素的初始蓄水池R0中的初始采樣結(jié)果X0[VX0,NX0,LX0,WX0,M]。因此重采樣后,當(dāng)前像素的蓄水池更新為

R0[X0,Ix-0]X0→YR0[Y,Ix-0](16)

3.3 基于復(fù)用長度的路徑選擇

為了進(jìn)一步增強(qiáng)重采樣結(jié)果對渲染結(jié)果的影響,本文還提出了基于復(fù)用長度的路徑選擇方法。

根據(jù)式(12)可知,由于重采樣只作用于式(12)的后綴輻射度部分,復(fù)用長度r0的大小直接影響了重采樣對渲染結(jié)果的實際影響。復(fù)用長度越小,樣本獲取和重采樣計算的推遲距離越小,后綴輻射度在式(12)中占比越高,重采樣對渲染結(jié)果的影響越大。而在實際應(yīng)用中,R0并不一定是{Ri}Mi=0中復(fù)用長度最小的蓄水池。因此在進(jìn)行路徑復(fù)用前,會通過復(fù)用長度衡量每個蓄水池Ri的路徑x-i的路徑質(zhì)量,并從{Ri}Mi=0中選擇路徑質(zhì)量最高的蓄水池Rs。路徑質(zhì)量有兩個關(guān)鍵的衡量標(biāo)準(zhǔn):a) 復(fù)用長度ri越小的蓄水池,其對應(yīng)的路徑質(zhì)量越高;b)復(fù)用長度ri≥0的蓄水池,其路徑質(zhì)量大于復(fù)用長度rilt;0的蓄水池。

第二條標(biāo)準(zhǔn)的目的是避免復(fù)用沒有diffuse材質(zhì)的路徑頂點的路徑。對本文算法而言,這些路徑?jīng)]有復(fù)用點,也沒有目標(biāo)子路徑,不滿足參與路徑復(fù)用的條件?;谏鲜鰞蓷l標(biāo)準(zhǔn),選擇函數(shù)C定義為

C(Rs,Ri)=Ri" if rsgt;ri and ri≥0Ri" if rslt;0 and ri≥0Rs" if rs≤ri and rs≥0Rs" if rilt;0(17)

通過路徑選擇方法得到的蓄水池Rs,會替換初始蓄水池R0緩存重采樣結(jié)果,并進(jìn)行最終渲染結(jié)果的計算。因此經(jīng)過路徑選擇后,當(dāng)前像素在重采樣后的蓄水池結(jié)果變?yōu)?/p>

R0[Y,Ix-0]R0→RsRs[Y,Ix-s](18)

而當(dāng)前像素的推遲重采樣的渲染計算公式,由式(12)變?yōu)?/p>

∫f(x-0)x-0→x-s∫f(x-s)=rs+rsfbrdf(xsrs)LYWY(19)

需要注意的是,在實際應(yīng)用中,通常會先進(jìn)行路徑選擇,然后基于路徑選擇結(jié)果,再進(jìn)行路徑復(fù)用以及重采樣計算。然而,復(fù)用長度并不總是越小越好。當(dāng)場景中相鄰的glossy表面較多時,永遠(yuǎn)選擇復(fù)用長度更小的路徑,容易使得渲染結(jié)果丟失路徑在glossy表面之間連續(xù)反射的視覺效果。如圖4所示,路徑x-1來自于glossy材質(zhì)的場景表面,其復(fù)用長度r1=1;路徑x-2來自于diffuse材質(zhì)的場景表面,其復(fù)用長度r2=2。此時路徑選擇方法會使得當(dāng)前像素永遠(yuǎn)只選擇路徑x-1對應(yīng)的蓄水池R1,導(dǎo)致渲染結(jié)果與預(yù)期不符。因此,本文算法設(shè)置了最小復(fù)用長度(minimal reuse length),定義為rm,來調(diào)整路徑選擇結(jié)果。當(dāng)蓄水池Rs滿足條件rs=rm時,其不會再被{Ri}Mi=0中復(fù)用長度ri≤rm的蓄水池取代。在圖4中,rm=2的渲染結(jié)果相比于rm=1的渲染結(jié)果(即不設(shè)置最小復(fù)用長度的渲染結(jié)果)更符合參考圖像。

圖4 最小復(fù)用長度示例

Fig.4 Example of minimal reuse length

4 實驗

4.1 實驗條件以及對比算法

本文所有實驗都在NVIDIA Falcor平臺上進(jìn)行。實驗環(huán)境為NVIDIA GeForce RTX 4070 GPU,Intel Core i7-13700KF CPU和32 GB內(nèi)存。如無說明,以下實驗的分辨率都為1 920×1 080,并且采樣率都為1 spp。本文實現(xiàn)了下列四種算法作為對比算法:

a)路徑追蹤(path tracing)。其為一個使用了BSDF重要性采樣的標(biāo)準(zhǔn)路徑追蹤算法,可以視作為未使用路徑復(fù)用的ReSTIR算法。

b)ReSTIR DI+。該算法結(jié)合了ReSTIR DI[1]和路徑追蹤算法。由ReSTIR DI計算直接光照,由路徑追蹤算法計算間接光照。

c)ReSTIR GI[2]。該算法將ReSTIR擴(kuò)展到了間接光照計算中。其開銷較低,但在glossy表面的渲染質(zhì)量極低,在實際應(yīng)用中無法用于渲染glossy表面。

d)ReSTIR PT[3]。該算法進(jìn)一步將ReSTIR擴(kuò)展到路徑空間。其在glossy表面的渲染質(zhì)量較高,但所需性能開銷極大,難以真正用于實際應(yīng)用。

除了上述算法,本文還將經(jīng)過時間累計的路徑追蹤算法結(jié)果作為參考圖像,其代表對應(yīng)場景的理論最佳渲染結(jié)果。

4.2 實驗結(jié)果

圖5為本文算法與其他算法在多個場景下的渲染結(jié)果以及渲染時間的比較圖。其中圖5(a)是本文算法的在對應(yīng)場景下的整體渲染結(jié)果,圖5(b)~(f)是本文算法和其他算法的細(xì)節(jié)比較,圖5(g)是對應(yīng)細(xì)節(jié)的理論最佳渲染結(jié)果。在渲染質(zhì)量方面,本文通過比較視覺效果來衡量渲染質(zhì)量。渲染結(jié)果在視覺上與參考圖像越接近,對應(yīng)算法的渲染質(zhì)量越高。同時本文采用平均絕對誤差(mean absolute error,MAE)作為渲染質(zhì)量的客觀比較指標(biāo)。該指標(biāo)值越小,對應(yīng)算法與參考圖像的差別越小。在性能開銷方面,本文通過幀時間(即算法渲染一幀所需的時間)來比較不同算法的性能開銷。幀時間越小,對應(yīng)算法的性能開銷越小。

如圖5(c)所示,由于只有直接光照使用了ReSTIR、ReSTIR DI+在glossy表面上的渲染結(jié)果,整體較暗且方差較大。而如圖5(d)所示,ReSTIR GI盡管效率較高,但反而會進(jìn)一步增加glossy表面渲染結(jié)果的方差。其在大部分場景下,對glossy表面的實際渲染結(jié)果都較為糟糕,在實際應(yīng)用中,無法用于渲染glossy場景表面。如圖5(e)所示,ReSTIR PT雖然渲染質(zhì)量較高,但其性能開銷對于實時應(yīng)用而言過高,不具備實用價值。而通過圖5(f)可以看出,由于推遲重采樣,本文算法能夠在glossy表面上得到與ReSTIR PT基本一致的渲染質(zhì)量同時,大大減少實際所需的性能開銷。綜上所述,本文算法能夠以更低的性能開銷,得到高質(zhì)量的glossy表面渲染結(jié)果,具有更高的實際應(yīng)用價值。

表1為不同算法在各個階段的時間開銷比較。由于所使用的路徑復(fù)用方法不同,不同ReSTIR通常有著不同的算法階段。為了更清晰地進(jìn)行性能開銷的比較,本文按照路徑生成、路徑重建和路徑復(fù)用三個階段分別統(tǒng)計所有算法的性能開銷。為方便比較,本文算法的路徑選擇階段的時間被統(tǒng)計在了路徑復(fù)用階段中。

通過表1可以看出,在路徑生成階段,盡管本文算法額外緩存了路徑信息,但相比于ReSTIR DI+和ReSTIR GI,實際只增加較少的性能開銷,并且由于無須緩存用于路徑重建的路徑信息,本文算法相比于ReSTIR PT大大減少了讀寫數(shù)據(jù)和處理路徑的時間。而由于未使用路徑重建方法,本文算法沒有路徑重建階段的開銷。在路徑復(fù)用階段,本文算法無須和ReSTIR PT一樣對被復(fù)用路徑進(jìn)行額外處理,因此能夠節(jié)省部分性能開銷。但由于使用了路徑選擇方法以提高路徑質(zhì)量,本文算法在路徑復(fù)用階段,相比于ReSTIR DI+和ReSTIR GI性能有所下降。除了上述三個階段,總計中還統(tǒng)計了一部分ReSTIR共有步驟的開銷。這些步驟的開銷在不同ReSTIR算法中基本相同,因此未單獨列出。

圖6為本文算法和不同ReSTIR算法的無偏貢獻(xiàn)權(quán)重WY的可視化比較。圖6(a)~(c)的第一行是渲染結(jié)果,第二行是無偏貢獻(xiàn)權(quán)重WY的可視化結(jié)果。WY的計算結(jié)果與實際渲染結(jié)果越匹配,對應(yīng)ReSTIR算法的收斂結(jié)果越好,渲染結(jié)果中的方差越少。而由于實際使用的路徑復(fù)用方法不同,不同ReSTIR算法會得到不同的WY計算結(jié)果。如圖6(a)所示,由于ReSTIR GI忽略了場景中存在的glossy采樣分布,導(dǎo)致WY的計算結(jié)果與glossy表面的實際渲染結(jié)果不匹配,WY的準(zhǔn)確性大大降低。而需要注意的是,由于實際進(jìn)行重采樣計算的場景表面的不同,以及最終渲染結(jié)果的計算方式不同,本文算法的WY和ReSTIR PT的WY并不等價,無法直接進(jìn)行誤差分析。但通過圖6(c)的可視化結(jié)果可以看出,本文算法通過推遲重采樣,避免了glossy采樣分布對渲染結(jié)果的影響,提高了WY的計算結(jié)果在glossy表面上的準(zhǔn)確性,最終的WY計算結(jié)果和ReSTIR PT的WY計算結(jié)果一樣,都能較好地匹配glossy表面的實際渲染結(jié)果。

圖7為本文算法在路徑選擇前后的渲染結(jié)果和復(fù)用長度的比較。圖7(a)~(d)的第一行是渲染結(jié)果,第二行是復(fù)用長度的可視化結(jié)果。由于場景中可能存在多個glossy材質(zhì)的場景表面,使得部分路徑可能沒有diffuse材質(zhì)的路徑頂點或者計算渲染結(jié)果時的復(fù)用長度過大,導(dǎo)致無法進(jìn)行路徑復(fù)用或者重采樣效果較差。而基于復(fù)用長度的路徑選擇方法,有效增加了實際可執(zhí)行路徑復(fù)用的路徑數(shù)量(復(fù)用長度rilt;0的路徑消失),縮短了部分像素對應(yīng)的蓄水池的實際復(fù)用長度(復(fù)用長度rigt;2的路徑減少)。這使得渲染結(jié)果有效的像素增加,尤其是提高了存在多次反射視覺效果的像素渲染質(zhì)量。

圖8為不同算法在相同降噪?yún)?shù)下的降噪結(jié)果。在實際應(yīng)用中,ReSTIR通常需要和降噪算法配合使用,從而得到光滑的最終渲染結(jié)果。而通過推遲重采樣,本文算法有效減少了glossy表面的渲染結(jié)果的方差,因此在同一降噪算法下,相比于圖8(b)(c),圖8(e)在glossy表面上的降噪結(jié)果更佳。而相比于ReSTIR PT,盡管沒有使用路徑重建等理論上方差更小的方法,但通過推遲重采樣,本文算法能夠得到和ReSTIR PT極為接近的渲染結(jié)果。在使用降噪算法進(jìn)行降噪后,原本較小的渲染質(zhì)量差異會被進(jìn)一步縮小,因此圖8(d)(e)在glossy表面上的降噪結(jié)果基本一致。并且由于算法自身的問題,ReSTIR PT的渲染結(jié)果中會存在較為明顯的椒鹽噪聲(即圖8(d)墻上的高亮點),而這些噪聲往往難以被降噪算法消除,導(dǎo)致最終的降噪結(jié)果受到影響。

表2通過結(jié)構(gòu)相似性SSIM(structural similarity)和峰值信噪比PSNR(peak signal noise ratio)兩項客觀評價指標(biāo)進(jìn)一步比較了不同算法的降噪結(jié)果。該兩項指標(biāo)數(shù)值越大越好。相比于路徑追蹤、ReSTIR DI+以及ReSTIR GI,本文算法有效提高了SSIM和PSNR值;相比于ReSTIR PT,本文算法以較低的開銷得到了相近的PSNR值,甚至由于椒鹽噪聲的影響,本文算法的SSIM值更高??梢钥闯觯趯嶋H應(yīng)用中,本文算法能夠以更低開銷,得到和ReSTIR PT基本一致的glossy表面的最終渲染結(jié)果。

5 結(jié)束語

為了以較低開銷得到高質(zhì)量的glossy表面的渲染結(jié)果,本文提出了一種新的基于推遲重采樣的路徑復(fù)用蓄水池算法,名為ReSTIR OG。該算法通過只復(fù)用起點為diffuse材質(zhì)的路徑和子路徑,以避免glossy采樣分布對重采樣計算的影響。為此,本文定義了復(fù)用點的概念,用于快速獲取目標(biāo)子路徑,并推導(dǎo)出相應(yīng)的推遲重采樣的渲染計算公式。這使得本文算法大大減少了glossy表面上的方差。此外,本文還提出了基于復(fù)用長度的路徑選擇方法。該方法有效增強(qiáng)了重采樣結(jié)果對渲染結(jié)果的影響,并剔除了對本文算法無用的路徑。實驗證明,本文算法能夠以較低開銷在glossy表面上得到高質(zhì)量的渲染結(jié)果。

然而,由于未使用路徑重建等方法,本文算法的復(fù)用路徑皆由路徑生成階段直接得到。每一幀初始采樣結(jié)果的質(zhì)量一定程度上會影響本文算法的渲染質(zhì)量。在初始采樣結(jié)果較差的場景中,本文算法渲染質(zhì)量也會相對較低。因此減少復(fù)用低質(zhì)量的目標(biāo)子路徑,將是本文一個可能的改進(jìn)方向。

參考文獻(xiàn):

[1]Bitterli B, Wyman C, Pharr M, et al.Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting[J]. ACM Trans on Graphics, 2020, 39(4): article No. 148.

[2]Ouyang Yaobin, Liu S, Kettunen M, et al.ReSTIR GI: path resampling for real-time path tracing[J]. Computer Graphics Forum, 2021, 40(8): 17-29.

[3]Lin Daqi, Kettunen M, Bitterli B, et al.Generalized resampled importance sampling: foundations of ReSTIR[J]. ACM Trans on Graphics, 2022, 41(4): 1-23.

[4]Talbot J F,ClineD,Egbert P, et al. Importance resampling for global illumination[C] //Proc of the 6th Eurographics Conference on Rendering Techniques.2005:139-146.

[5]Ogaki S. Vectorized reservoir sampling[C]// Proc of SIGGRAPH Asia 2021 Technical Communications. New York: ACM Press, 2021: article No. 20.

[6]KarrasC, Karras A, Drakopoulos G, et al.Weighted reservoir sampling on evolving streams: a sampling algorithmic framework for stream event identification[C]// Proc of the 12th Hellenic Confe-rence on Artificial Intelligence. New York: ACM Press, 2022: article No. 26.

[7]Boissé G. World-space spatiotemporal reservoir reuse for ray-traced global illumination[C]// Proc of SIGGRAPH Asia 2021 Technical Communications. New York: ACM Press, 2021: 1-9.

[8]Boksansky J, Jukarainen P, Wyman C. Rendering many lights with grid-based reservoirs[M]// Marrs A, Shirley P, Wald I. Ray Tra-cing GemsⅡ. Berkeley, CA: Apress, 2021: 351-365.

[9]Lin Daqi, Wyman C, Yuksel C. Fast volume rendering with spatiotemporal reservoir resampling[J]. ACM Trans on Graphics, 2021, 40(6): 1-18.

[10]Atanasov A, Koylazov V, Dimov R, et al.Microsurface Transformations[J]. Computer Graphics Forum, 2022, 41(4): 105-116.

[11]Ananbeh E A, Eidous O M. New simple bounds for standard normal distribution function[J/OL]. Communications in Statistics-Simulation and Computation. (2024-03-15). https://doi.org/10.1080/03610918.2024.2326596.

[12]Miandji E, Tongbuasirilai T, Hajisharif S, et al. FROST-BRDF: a fast and robust optimal sampling technique for brdf acquisition[J]. IEEE Trans on Visualization and Computer Graphics, 2024, 30(7): 4390-4402.

[13]Heitz E, d’Eon E. Importance sampling microfacet-based BSDFs using the distribution of visible normal[J]. Computer Graphics Forum, 2014, 33(4): 103-112.

[14]Heitz E. A simpler and exact sampling routine for the GGX distribution of visible normals, hal-01509746[R]. [S.l.]: Unity Technologies, 2017.

[15]Tokuyoshi Y. Unbiased VNDF sampling for backfacing shading normals[M]// Proc of ACM SIGGRAPH 2021 Talks. New York: ACM Press, 2021: 1-2.

[16]Dupuy J, Benyoub A. Sampling visible GGX normals with spherical caps[J]. Computer Graphics Forum, 2023, 42(8): e14867.

[17]Eto K, Tokuyoshi Y. Bounded VNDF Sampling for Smith-GGX reflections[C]// Proc of SIGGRAPH Asia 2023 Technical Communications. New York: ACM Press, 2023: 1-4.

[18]Vorba J, Karlík O, ik M, et al.On-line learning of parametric mixture models for light transport simulation[J]. ACM Trans on Graphics, 2014, 33(4):1-11.

[19]Herholz S, Elek O, Vorba J, et al.Product importance sampling for light transport path guiding[J]. Computer Graphics Forum, 2016, 35(4): 67-77.

[20]Müller T, Gross M, Novák J. Practical path guiding for efficient light-transport simulation[J]. Computer Graphics Forum,2017, 36(4): 91-100.

[21]Vorba J, Hanika J, Herholz S, et al.Path guiding in production[C]// Proc of ACM SIGGRAPH 2019 Courses. New York: ACM Press, 2019: 1-77.

[22]Fan Zhimin, Hong Pengpei, Guo Jie, et al.Manifold path guiding for importance sampling specular chains[J]. ACM Trans on Graphics, 2023, 42(6): 1-14.

[23]Bako S, Meyer M, DeRose T, et al.Offline deep importance sampling for Monte Carlo path tracing[J]. Computer Graphics Forum, 2019, 38(7): 527-542.

[24]Müller T, McWilliams B, Rousselle F, et al.Neural importance sampling[J]. ACM Trans on Graphics, 2019, 38(5): 1-19.

[25]Zheng Quan, Zwicker M. Learning to importance sample in primary sample space[J]. Computer Graphics Forum, 2019, 38(2): 169-179.

[26]Zhu Shilin, Xu Zexiang, Sun Tiancheng, et al.Photon-driven neural reconstruction for path guiding[J]. ACM Trans on Graphics, 2021, 41(1): 1-15.

[27]Bitterli B, Rousselle F, Moon B, et al.Nonlinearly weighted first-order regression for denoising Monte Carlo renderings[J]. Computer Graphics Forum, 2016, 35(4): 107-117.

[28]Moon B, Iglesias-Guitian J A, Yoon S E,et al.Adaptive rendering with linear predictions[J]. ACM Trans on Graphics, 2015, 34 (4): 1-10.

[29]Moon B, McDonagh S, Mitchell K, et al.Adaptive polynomial rendering[J]. ACM Trans on Graphics, 2016, 35(4): article No. 40.

[30]Munkberg J, Hasselgren J,Clarberg P, et al.Texture space caching and reconstruction for ray tracing[J]. ACM Trans on Graphics, 2016, 35(6): 1-13.

[31]Schied C,Kaplanyan A, Wyman C, et al.Spatiotemporal variance-guided filtering: real-time reconstruction for path-traced global illumination[C]// Proc of High Performance Graphics. New York: ACM Press, 2017: 1-12.

[32]Gautron P, Droske M, Wchter C, et al.Path space similarity determined by Fourier histogram descriptors[C]// Proc of ACM SIGGRAPH 2014 Talks. New York: ACM Press, 2014: article No. 39.

[33]Keller A, Dahm K, Binder N. Path space filtering[M]// Cools R, Nuyens D. Monte Carlo and Quasi-Monte Carlo Methods. Cham: Springer, 2016: 423-436.

广宁县| 宜兴市| 峨边| 焦作市| 湘潭市| 蒙阴县| 秦皇岛市| 望谟县| 通化县| 额尔古纳市| 巴楚县| 文登市| 新宁县| 甘孜县| 元氏县| 九江县| 浦北县| 乌鲁木齐县| 海南省| 梁河县| 达孜县| 卢氏县| 务川| 惠水县| 泸水县| 兴山县| 政和县| 余干县| 日照市| 礼泉县| 漯河市| 陕西省| 祁门县| 富宁县| 岳普湖县| 青川县| 东城区| 威海市| 华容县| 曲阜市| 黄冈市|