最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

蒙特卡洛光線追蹤基礎(chǔ) - 渲染方程與概率密度函數(shù)

2023-08-02 13:28 作者:B1ueMicr0  | 我要投稿

歡迎來到我的專欄。經(jīng)過前面幾次雜談瞎掰之后,我又想回來寫點(diǎn)偏技術(shù)的東西了。

這里,我想使用極短的篇幅來介紹一下我們現(xiàn)在做光線追蹤的一些技巧。希望對您有用。

現(xiàn)在這個年代,您應(yīng)該多少對光線追蹤和全局光照有所耳聞。沒錯,當(dāng)前的計(jì)算機(jī)實(shí)現(xiàn)全局光照最準(zhǔn)確的方法就是光線追蹤。

通過光線追蹤渲染出來的 Cornell Box

而我們現(xiàn)在所指的光線追蹤實(shí)際上是路徑跟蹤(Path Tracing),它是建立于 1986 年 James Kajiya 老先生所提出偉大的 “渲染方程(The Rendering Equation)” 的基礎(chǔ)上的。

并且,渲染方程從 1986 年指導(dǎo)了整個渲染領(lǐng)域至今。我們現(xiàn)在做的一切工作都是為了逼近或者直接求解渲染方程,以此達(dá)到照片級真實(shí)感。(不過令琪老師他們的波光體系的論文最近也發(fā)了,估計(jì)不久以后圖形學(xué)光傳輸理論領(lǐng)域也要變天了)

最早比較完備的光線追蹤著色算法實(shí)際上是 Turner Whitted 于 1979 年提出的經(jīng)典遞歸光線追蹤模型(Whitted-Style Raytracing)。

Turner Whitted 仍健在,并且現(xiàn)在正在 NVIDIA Research 任職!

經(jīng)過了這十幾年通用算力不斷膨脹,實(shí)時光線追蹤也開始逐漸成為了熱門話題。然而,目前的 GPU 算力僅僅只能支撐起我們做很小一部分的光線追蹤,每一次發(fā)射光線我們都不能保證完全得到想要的信息。

無論是實(shí)時游戲里的還是離線渲染器里的光線追蹤,本質(zhì)上它們都是一個東西。只不過是采樣率上存在差別。

好了,歷史課上完了。接下來的東西就有點(diǎn)頭疼了哦。

首先,

這個圖形象地概括了渲染方程地核心思想。其實(shí)它還可以用?L(D%7CS)*E 來概括,意思是從光線到攝像機(jī),光線在傳播途中可以進(jìn)行多次的 Diffuse 和 Specular 的反彈。

為了方便,這里稍微省略一下括號內(nèi)的自變量(不代表它們不存在),則每條光線的能量傳輸都可以寫成:

f_%7Br%7DL_%7Bi%7D%20cos%5Ctheta%20_%7Bi%7D

至于整個半球空間內(nèi),一個點(diǎn)接受到四面八方來的所有光線的累積就是:

%5Clim_%7B%5Comega_%7Bi%7D%20%5Cto%20%5Cinfty%7D%20%5Csum_%7BH%5E2%7D%20f_%7Br%7D%20L_%7Bi%7D%20cos%5Ctheta%20_%7Bi%7D

%3D%5Cint_%7BH%5E2%7D%5E%7B%7D%20%20f_%7Br%7D%20%20L_%7Bi%7D%20%20cos%5Ctheta%20_%7Bi%7Dd%5Comega_%7Bi%7D

不過這只是反射的出射光線。加上自發(fā)光的話,則是:

L_r%20%3D%20L_e%2B%20%5Cint_%7BH%5E2%7D%5E%7B%7D%20%20f_%7Br%7D%20%20L_%7Bi%7D%20%20cos%5Ctheta%20_%7Bi%7Dd%5Comega_%7Bi%7D

為了統(tǒng)一和舒服起見,以后我們都使用以下形式的渲染方程:

L_r(x%2C%5Comega_r)%20%3D%20L_e(x%2C%5Comega_r)%2B%20%5Cint_%7B%5COmega%20%7D%5E%7B%7D%20%20f_%7Br%7D(x%2C%5Comega_i%2C%5Comega_o)%20L_%7Bi%7D%20(x%2C%5Comega_i)%20cos%5Ctheta%20_%7Bi%7Dd%5Comega_%7Bi%7D

其中:

L_r(x%2C%5Comega_r)%20?是最終出射光

L_e(x%2C%5Comega_r)?是自發(fā)光

f_%7Br%7D(x%2C%5Comega_i%2C%5Comega_o) 是雙向反射分布函數(shù)(BRDF),它決定光線從某種特定表面彈射出去時會具有的一些特性(例如法線的分布),它同時是基于物理渲染(PBR)的基礎(chǔ)

L_%7Bi%7D%20(x%2C%5Comega_i)%20 是入射光,也是上一個彈射點(diǎn)的最終的出射光

cos%5Ctheta_i 是入射光和法向量夾角的余弦值,并且?cos%5Ctheta_i%3Dn%5Ccdot%5Comega_i

%5Cint_%7B%5COmega%20%7D%5E%7B%7D%20%20f_%7Br%7D(x%2C%5Comega_i%2C%5Comega_o)%20L_%7Bi%7D%20(x%2C%5Comega_i)%20cos%5Ctheta%20_%7Bi%7Dd%5Comega_%7Bi%7D?就是反射的其它地方來的光,半球空間用?%5COmega%20 表示

注意,渲染方程里光是規(guī)定了具體輻射能量單位的,即現(xiàn)實(shí)中的瓦特每平方米,這也體現(xiàn)出了它的物理準(zhǔn)確性。而不像傳統(tǒng)局部光照模型(例如 Blinn-Phong)那樣只有一個籠統(tǒng)的,經(jīng)驗(yàn)性的?“光強(qiáng)” 概念。

以上就是關(guān)于渲染方程的一些東西了。所以我們就得到了一個具體的方針——想要得到照片級畫質(zhì),就求解渲染方程。

然而我們?nèi)タ纯翠秩痉匠痰男问剑且粋€標(biāo)準(zhǔn)的積分方程。我們要如何在計(jì)算機(jī)上用數(shù)值方法去求解那么大坨定積分呢?

我們以這個定積分舉例:

我們知道,這個藍(lán)色曲邊梯形的面積為:

%5Cint_%7Ba%7D%5E%7Bb%7D%20f(x)dx%20%3D%20%5Clim_%7Bn%5Cto%5Cinfty%7D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%3D0%7D%5En%20f(x_i)(b-a)%20%20

這定積分本質(zhì)上就是一個極限嘛,當(dāng)然我們可以把等式右邊稍微變個型,也就是

? ?%5Clim_%7Bn%5Cto%5Cinfty%7D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%3D0%7D%5En%20f(x_i)(b-a)%20%20%3D%20%5Clim_%7Bn%5Cto%5Cinfty%7D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%3D0%7D%5En%20%5Cfrac%7Bf(x_i)%7D%7B%5Cfrac%7B1%7D%7Bb-a%7D%20%7D%20

誒,不知道你發(fā)現(xiàn)沒有,上面那張圖上面的?x_n是均勻分布的,其實(shí)這樣的法則反映到我們這里就是均勻采樣(Uniform Sampling)。

而?%5Clim_%7Bn%5Cto%5Cinfty%7D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%3D0%7D%5En%20%5Cfrac%7Bf(x_i)%7D%7B%5Cfrac%7B1%7D%7Bb-a%7D%20%7D%20 想要表達(dá)的正是通過隨機(jī)均勻采樣來求得藍(lán)色曲邊梯形的面積。而這樣隨機(jī)采樣來求解積分結(jié)果的方法也叫“蒙特卡洛方法”(Monte Carlo Method),這樣的積分我們也叫它“蒙特卡洛積分”。

然而你也發(fā)現(xiàn)了,如果要收斂到正確結(jié)果,那么我們得做無限次的采樣(n%5Cto%5Cinfty),這對于計(jì)算機(jī)來說顯然不現(xiàn)實(shí),何況我們這些做渲染的追求質(zhì)量的同時的可不就是追求一個快。所以我們?yōu)榱怂俣?,一般都是大大降低了采樣次?shù)的。

在上述的??%5Clim_%7Bn%5Cto%5Cinfty%7D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%3D0%7D%5En%20%5Cfrac%7Bf(x_i)%7D%7B%5Cfrac%7B1%7D%7Bb-a%7D%20%7D%20?中,我們把??%5Cfrac%7B1%7D%7Bb-a%7D?稱作均勻采樣的“概率密度函數(shù)”(Probability Destiny Function, PDF) ,所以還可以表示為

??%5Cint_%7Ba%7D%5E%7Bb%7D%20f(x)dx%20%20%5Csim%20%20F_n(X)%3D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%3D0%7D%5En%20%5Cfrac%7Bf(X_i)%7D%7B%5Cfrac%7B1%7D%7Bb-a%7D%20%7D%20

以后看到 PDF 就不要只想成文檔咯 (~ ̄▽ ̄)~

所以,哈哈,我們得到了一種船新的利用概率密度函數(shù)來求積分的數(shù)值方法(雖然結(jié)果不一定收斂)

%5Cint_%7Ba%7D%5E%7Bb%7D%20f(x)dx%20%20%5Csim%20%20F_n(X)%3D%20%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bk%3D0%7D%5En%20%5Cfrac%7Bf(X_k)%7D%7BPDF(X_k)%7D%20

然而,均勻采樣對于我們做全局光照的來說,缺點(diǎn)是很大的。例如,在部分信號強(qiáng)烈的地方和信號弱的地方做了同樣的采樣,這樣一來效果就差了。比如下圖所示的,均勻采樣比余弦權(quán)重的采樣噪點(diǎn)更多,因?yàn)楦鶕?jù)下圖余弦波瓣所示圖象的特點(diǎn),球頂分布的采樣會比底下的更密集。

所以,使用合適的 PDF,可以更加逼近正確值。我們這里就引入一種很重要的采樣方式:重要性采樣(Importance Sampling)

看名字我們就知道了,這是根據(jù)重要性來進(jìn)行采樣,哪一部分需要集中采樣,哪一部分不太需要,就是根據(jù) PDF 決定的。這樣我們可以得到比均勻采樣準(zhǔn)確得多的結(jié)果。

常見的 PDF 有 %20%5Cfrac%7Bcos%5Ctheta%7D%7B%5Cpi%20%7D%20,也有我們熟悉的老???GGX 分布函數(shù),了解 PBR 的人都知道它很適合做 Specular。

您看,像 GGX 這類概率密度分布就和余弦波瓣的就不一樣,我們明顯能感受到 GGX 要更急,它就可以很好地做金屬表面的效果。

不過,我們不能抓住一個 PDF 不放,最重要的是根據(jù)需求而選擇合適的 PDF。歸根結(jié)底,做渲染也是一個做 Sampling 的過程,我們一定要選擇合適的采樣法則,這樣才能更好地逼近于正確值,實(shí)現(xiàn)照片級渲染。

謝謝大家看到這里!

蒙特卡洛光線追蹤基礎(chǔ) - 渲染方程與概率密度函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
兴山县| 泽普县| 纳雍县| 永和县| 香港 | 铁岭县| 聂拉木县| 五华县| 大连市| 孙吴县| 曲阜市| 岑溪市| 赞皇县| 道真| 丰县| 苗栗县| 桃园县| 沐川县| 北安市| 衡水市| 昆明市| 乌鲁木齐县| 定边县| 遂昌县| 平乡县| 西丰县| 始兴县| 塔城市| 新巴尔虎左旗| 新巴尔虎左旗| 新野县| 乐山市| 兴安盟| 安达市| 冕宁县| 安阳市| 华蓥市| 柯坪县| 汽车| 将乐县| 枣庄市|