路徑追蹤技術(shù)(Path tracing,PT)已經(jīng)是當(dāng)下工業(yè)中離線渲染使用的主流技術(shù),不管是商業(yè)渲染器如皮克斯的RenderMan,Solid Angle的Arnold等,還是迪士尼的in-house渲染器Hyperion以及Weta Digital的Manuka都是基于路徑追蹤技術(shù)。路徑追蹤算法非常簡(jiǎn)單,它首先將光照方程表述為面積積分的形式,然后一束光線從光源經(jīng)過各個(gè)物體表面及內(nèi)部多次交互(反射,折射,散射)后進(jìn)入圖像平面的貢獻(xiàn)值(即輻射照度)被轉(zhuǎn)換為這些表面交互點(diǎn)形成的路徑的一個(gè)積分,其被積函數(shù)為這些表面的雙向散射系數(shù)(BSDF),頂點(diǎn)之間的積分變量變化(change of variables)以及頂點(diǎn)之間可見性的乘積。在統(tǒng)計(jì)中,積分可以很簡(jiǎn)單地使用蒙特卡洛方法進(jìn)行估計(jì),因此光照傳輸?shù)膯栴}就轉(zhuǎn)化為對(duì)場(chǎng)景進(jìn)行路徑采樣,然后對(duì)每條路徑的貢獻(xiàn)值進(jìn)行平均求和的蒙特卡洛積分計(jì)算。

盡管自基本的路徑追蹤算法被提出以來,各種增強(qiáng)改進(jìn)的方法被整合進(jìn)來,然而上述路徑追蹤技術(shù)的“基礎(chǔ)架構(gòu)”幾乎沒有多少實(shí)質(zhì)性的變化。對(duì)于任何行業(yè),工業(yè)中主流的技術(shù)一般不是當(dāng)下最先進(jìn)的技術(shù),而是最成熟可工業(yè)化的方案,當(dāng)前工業(yè)中的路徑追蹤技術(shù)優(yōu)化主要集中在優(yōu)化算法的執(zhí)行效率,主要是針對(duì)處理器硬件架構(gòu)進(jìn)行優(yōu)化,例如針對(duì)緩存系統(tǒng)的優(yōu)化,增強(qiáng)數(shù)據(jù)局部性和指令局部性,以及改進(jìn)光線連貫性(ray coherence)使其能夠利用SIMD指令進(jìn)行高效計(jì)算等,這方面比較突出的是迪士尼的Hyperion渲染器,一些渲染器的優(yōu)化更是幾乎能達(dá)到某些場(chǎng)景復(fù)雜度范圍內(nèi)實(shí)時(shí)渲染,例如Embree。

然而以上這些內(nèi)容卻不是本文關(guān)注的重點(diǎn)(上述內(nèi)容會(huì)在thegibook中詳細(xì)討論),本文我們要討論的是一些路徑追蹤算法基礎(chǔ)架構(gòu)層面的改進(jìn),這些算法還很少出現(xiàn)在當(dāng)前工業(yè)解決方案中,但是確實(shí)未來的重要發(fā)展趨勢(shì)。

傳統(tǒng)的路徑追蹤算法是一個(gè)單純的積分問題,因此可以使用蒙特卡洛方法來估計(jì),然而蒙特卡洛方法的每個(gè)抽樣是獨(dú)立的,因此很難有效快速對(duì)一些比較困難的路徑進(jìn)行采樣,一些很難被采樣的路徑需要巨量的采樣數(shù)才能達(dá)到“令人滿意”的結(jié)果,這導(dǎo)致非常緩慢的收斂速度。盡管開始的收斂速度非??欤?倍采樣數(shù)量可以減少1/2的誤差),但是越到后面會(huì)花費(fèi)更多倍的時(shí)間。傳統(tǒng)的方差縮減技術(shù)如重要性采樣,分層采樣,擬蒙特卡洛方法(Quasi-Monte Carlo)仍然不能改變這個(gè)收斂速度。

要提升蒙特卡洛估計(jì)的收斂速度,直觀上,我們需要能夠辨識(shí)每個(gè)圖像的分布特征,然后在一些高頻變化區(qū)域增加采樣的密度。然而,傳統(tǒng)的蒙特卡洛方法中每個(gè)抽樣之間是獨(dú)立的,它并不能有效辨識(shí)這種頻率變化特征,盡管梅特波利斯光照傳輸(Metropolis light transport,MLT)通過采樣點(diǎn)之間的相關(guān)性能夠?qū)ふ乙恍├щy路徑,本質(zhì)上它仍然并不善于處理和分析頻率域特征。要想能夠辨識(shí)圖像的分布特征,我們需要了解每個(gè)路徑的局部特征,即是我們需要對(duì)路徑追蹤算法引入微分運(yùn)算。路徑的微分涉及路徑與附近局部范圍內(nèi)光線的差值,即圖像的局部特征,因此它引入了光線之間的相關(guān)性,可以從多個(gè)層面改善路徑追蹤算法的效率(也正是如此,我們認(rèn)為這是近幾年路徑追蹤技術(shù)領(lǐng)域的重大進(jìn)展)。

最近幾年路徑追蹤領(lǐng)域的一些重大進(jìn)展正是微分幾何(differential geometry)的引入,由于微分反應(yīng)的是流形(manifold)的局部變化,因此非常善于尋找圖像分布中的高頻部分,目前路徑追蹤算法中的微分運(yùn)用主要包括:以通過計(jì)算紋理過濾函數(shù)實(shí)現(xiàn)反走樣的光線/路徑微分(ray/path differential)和協(xié)方差追蹤技術(shù)(covariance tracing);以通過計(jì)算梯度圖像用于利用篩選泊松方程(Screened Poisson equation)重建目標(biāo)圖像的梯度域渲染(gradient-domain rendering);以及通過將微分幾何結(jié)合費(fèi)馬定理(Fermat principle)用來尋找鏡面/光澤路徑的流形探索(manifold exploration),半矢量空間光照傳輸(half vector space light transport)等技術(shù);此外,微分還被用于適配性采樣(adaptive sampling),成為重要的降噪技術(shù)(Denoising)。

以下我們就來從概念和思路上分析上述這些技術(shù),當(dāng)然我們可以提前知道的這些技術(shù)的一個(gè)重要共同點(diǎn)就是:這些微分計(jì)算通常不需要通過光線追蹤引入新的采樣點(diǎn),否則那樣的計(jì)算成本就很高,這些技術(shù)通常都是利用微分幾何和某些假設(shè)進(jìn)行單純的微分計(jì)算,這里主要的工具是一階泰勒展開式(first-order Taylor approximation)和頂點(diǎn)處的切線平面空間(tangent space),因此,這些新技術(shù)通常都可以很容易地集成于目前主流的路徑追蹤技術(shù)基礎(chǔ)架構(gòu)之上,更詳細(xì)的內(nèi)容請(qǐng)參考thegibook中相關(guān)章節(jié)。

接下來我們討論的每一種微分的運(yùn)用都涉及一個(gè)相對(duì)比較獨(dú)立的層面,在閱讀這些內(nèi)容的時(shí)候,你首先需要非常清晰的了解的是它用來解決什么問題,因此我會(huì)在每一節(jié)的開頭提出這個(gè)問題,然后讀者可以圍繞這個(gè)問題來閱讀每一小節(jié),即每一種技術(shù)。

光照傳輸?shù)木植款l率域分析

微分反應(yīng)的是圖像的局部特征,因此其在圖像渲染中最直觀的運(yùn)用就是用于反走樣(anti-aliasing)。光線追蹤算法中由于采用不足導(dǎo)致的走樣問題可以分為兩大類:對(duì)路徑空間(path space)的采樣不足和對(duì)紋理空間(texture space)的采樣不足,本質(zhì)上這都是由于路徑采樣的不足導(dǎo)致的,但是它們通常使用不同的方法來解決。一個(gè)像素區(qū)域內(nèi)的光線從屏幕空間發(fā)射出去之后,隨著光線在表面的各種交互這個(gè)面積可能會(huì)無限擴(kuò)散,所以單純?cè)黾勇窂讲蓸拥臄?shù)量可能也很難彌補(bǔ)紋理走樣(texture aliasing)的問題。所以它們分別對(duì)應(yīng)路徑追蹤算法中兩個(gè)比較獨(dú)立的反走樣技術(shù):路徑空間采樣不足主要對(duì)應(yīng)于降噪技術(shù),紋理空間采樣不足對(duì)應(yīng)于紋理過濾技術(shù)。

目前降噪技術(shù)主要的思路是針對(duì)圖像的分布特征進(jìn)行適配性采樣以及適配性重建,前者對(duì)應(yīng)于在圖像的高頻區(qū)域放置更高的路徑采樣密度;后者對(duì)應(yīng)于根據(jù)圖像特征對(duì)不同的區(qū)域使用不同的重建過濾器(reconstruction filter)。對(duì)路徑進(jìn)行適配性采樣的方法可以分為兩類:第一種直接對(duì)光照傳輸方程進(jìn)行分析,稱為先驗(yàn)方法(a priori method);而第二種只對(duì)屏幕空間的圖像進(jìn)行分析,稱為后驗(yàn)方法(a posteriori method)即是說與路徑采樣的方法無關(guān)。

光照傳輸?shù)木植款l率域分析可以用于紋理過濾以及作為降噪技術(shù)中的先驗(yàn)方法。以下我們討論局部頻率域分析的方法和思路。

路徑的局部頻率域分析雖然不是源自光線微分(ray differential)技術(shù),但是跟它有很大的聯(lián)系。光線微分技術(shù)的核心思路是隨著光線的傳播跟蹤該光線對(duì)應(yīng)的頻率區(qū)域一個(gè)像素的大小,這稱為光線的足跡(footprint),如下圖所示,在路徑追蹤算法中追蹤每條路徑的時(shí)候,同時(shí)沿屏幕空間x和y方向分別發(fā)射一條一個(gè)像素大小的偏移路徑,然后對(duì)每條基礎(chǔ)路徑同時(shí)跟蹤兩條偏移路徑。路徑在每個(gè)頂點(diǎn)處的足跡大小則可以通過積分計(jì)算出來。當(dāng)然光線微分技術(shù)并沒有完全利用微分幾何的知識(shí),因?yàn)樗僭O(shè)偏移路徑和基礎(chǔ)路徑在每個(gè)路徑頂點(diǎn)處位于同于平面-即該頂點(diǎn)的正切平面(tangent space)上,所以光線微分的計(jì)算大大簡(jiǎn)化了。

由于假設(shè)偏移路徑和基礎(chǔ)路徑和表面的交點(diǎn)位于同一平面,上述光線微分技術(shù)僅適用于鏡面表面(specular surface),路徑微分(path differential)在此基礎(chǔ)上將光線微分?jǐn)U展到了光澤面(glossy surface)和漫反射表面(diffuse surface),它雖然有比較理論的推導(dǎo),但是實(shí)踐上主要使用經(jīng)驗(yàn)方法,即根據(jù)表面的粗糙度用來縮放足跡的大小以支持光澤面和漫反射表面。

上述的光線/路徑微分技術(shù)實(shí)際上是光線的一種局部特征,傳統(tǒng)的路徑追蹤算法中每條光線之間的獨(dú)立的,所以不能夠分辨這種局部特征。然而上述方法還是有很多缺點(diǎn),例如光線經(jīng)過多次傳播之后可能形狀非常不規(guī)則,而兩條偏移路徑計(jì)算的四邊形無法表達(dá)這種形狀;其次偏移路徑可能被阻擋,而光線/路徑微分是忽略這種阻擋的;為了更好的追蹤光線的局部特征,我們需要更完整的對(duì)光線的傳輸過程進(jìn)行分析。

目前對(duì)光線進(jìn)行局部分析的方法的思路主要是將光線的局部特征表示為一個(gè)空間-方向分布(spatial-angular distribution)的局部光照?qǐng)觯╨ocal light field),如下圖所示,黃色的中心光線表示基礎(chǔ)光線,周圍的一些具有不同位置和方法分布的光線是一些虛擬光線,它們共同構(gòu)成一個(gè)局部的空間-方向分布。例如對(duì)于攝像機(jī)光線,它的局部光照?qǐng)龅姆植季褪且粋€(gè)像素范圍大小的一個(gè)過濾器,該過濾器對(duì)于每個(gè)不同方向和位置處的光線都具有一個(gè)不同的權(quán)重值,這個(gè)過濾器就反映了攝像機(jī)路徑的局部特征;對(duì)于光源路徑,如果是面積光,則局部光照?qǐng)龅姆较驗(yàn)楣潭ㄖ?,而位置分布于面積光源的各個(gè)位置。

有了局部光照?qǐng)龅拿枋?,剩下的事情就是?jì)算該光照?qǐng)鲭S著中心光線的傳輸。早期的思路是將光線在傳輸過程中的各種交互過程看做一個(gè)操作函數(shù),例如光線的直線傳輸(transfer),反射,折射,陰影遮擋等,如下圖所示,然后在局部光照?qǐng)龊瘮?shù)的頻率空間進(jìn)行交互,這樣就可以跟蹤局部光照?qǐng)鲭S中心光線的傳播過程。

上述的傅里葉分析過程計(jì)算成本相對(duì)較高,為了簡(jiǎn)化局部光照?qǐng)龅膫鬏?,協(xié)方差追蹤(covariance tracing)技術(shù)考慮可以將一個(gè)4D的空間-方向分布近似為一個(gè)橢圓形高斯分布(elliptical Gaussian filter),如下圖所示,然后該分布可以使用該4D光照?qǐng)龅膮f(xié)方差來表示,所以局部光照?qǐng)隹梢杂闷鋮f(xié)方差矩陣(covariance matrix)來表示。然后這些對(duì)局部光照?qǐng)龅膫鞑ゲ僮鲾?shù)就轉(zhuǎn)變?yōu)榫仃嚥僮?,最后在?jì)算足跡的時(shí)候再從協(xié)方差計(jì)算出該4D局部光照?qǐng)龅某叽?,這就可以用來替代上述的光線/路徑微分技術(shù)用來實(shí)現(xiàn)紋理過濾。

協(xié)方差追蹤不僅用于紋理過濾中計(jì)算局部光照?qǐng)鲎阚E的大小,還被用于適配性采樣,如果我們從光源路徑方向追蹤光源的空間-方向分布至屏幕空間,則我們可以在屏幕空間分析圖像的頻率分布,進(jìn)而可以用于適配性采樣,如下圖所示。下圖的局部光照?qǐng)鍪且粋€(gè)5D空間,它還包含了時(shí)間維度,因此可以用于計(jì)算運(yùn)動(dòng)模糊(motion blur)效果,在該圖中,首先從光源發(fā)出光線經(jīng)過一次表面交互(即直接光)之后投射一個(gè)橢圓形分布到屏幕空間,然后根據(jù)這些分布就可以計(jì)算出圖像的頻率分布,這些分布特征被用于適配性采樣。

除了協(xié)方差追蹤,光照傳輸?shù)木植款l率域分析還包括其他一些方法,但是目前協(xié)方差追蹤是更簡(jiǎn)單和高效的一種技術(shù)。當(dāng)然協(xié)方差追蹤的限制是它將局部光照?qǐng)鼋茷橐粋€(gè)橢圓形的分布,實(shí)際的局部光照?qǐng)龇植继卣骺赡苓€需要更負(fù)責(zé)的形狀表述,這也是未來的優(yōu)化方向。

下一篇我們將討論梯度域渲染和流形探索或者半矢量空間光照傳輸。

分類: 全局光照技術(shù)

http://www.cnblogs.com/hielvis/p/6371840.html