渲染方程和蒙特卡罗方法(一)
渲染方程和蒙特卡洛方法(一)
既然標題里有一,足以看出這次真的是開了一個大坑啊,這個地方也是我一直逃避的地方,可是總歸還是要把這里弄明白的,我自己的水平有限寫這個也只是為了鞏固自己的圖形學知識,這篇文章也是我對于GAMES101的學習筆記,若是有人能看到這篇文章,只建議自己做一個參考,希望能對你有所幫助。順帶一提:本文的公式,定理,圖片均來自于GAMES101,非常好的計算機圖形學入門課程,有興趣可以在B站找到官方的課程。
1 從渲染方程開始說起
首先讓我們先看看這個大名鼎鼎的渲染方程到底長什么樣子吧。
Lr(p,ωr)=Le(p,ωo)+∫H2fr(p,ωi,ωr)Li(p,ωi)cosθidωi
烏拉!!就是這個樣子,當然你現(xiàn)在可能一頭霧水,別著急下面我們來具體的看看這個公式。
1.1 輻射度量學(Radiometry)
別害怕,我們只會在這里介紹幾個物理定義
Radiant energy : Q [J = Joule(焦耳)]
? the energy of electromagnetic radiation
Radiant flux(power) ?≡dQdt [W = Watt] [lm = lumen]
? Energy per unit time
Radiant intensity I(ω)≡d?dω
? power per unit solid angle
Solid Angle Ω=Ar2
? ratio of subtended area on sphere to radius squared
上面最難以理解的概念,大概就是固體角了吧。
首先我們從二維的角度去理解,弧長的定義為l=nπr180 => 圓形角的弧度d=lr 于是我們可以類比到三維,如上圖所示。三維情況下,弧長對應為面積,半徑則變?yōu)榘霃降钠椒剑谑俏覀兙涂梢缘玫焦腆w角的定義。具體的我們可以將固體角理解為圖中錐形區(qū)域的角度。
知道了固體角,下面我們繼續(xù)了解幾個概念。
1.1.1 Irradiance
? Definition : The irradiance is the power per (perpendicularprojected) unit area incident on a surface point.
>E(x)≡d?(x)dA>
注意當平面法向和光線入射方向的夾角不同時,平面接受到的irradiance是不同的。Lambert`s Cosine Law解釋了這個不同情況下的irradiance是多少。
注意:當我們提到光的衰減的時候,我們往往指的是Irradiance的衰減而不是intensity的衰減,很簡單因為無論在某一方向上的光傳播到多遠,其固體角是不變的,但是單位面積上的power是在減少的也就是Irradiance是在減少的。
1.1.2 Radiance
? Definition :The radiance (luminance) is the power emitted, reflected, transmitted or received by a surface, per unit solid angle, per projected unit area.
? Radiance is the fundamental field quantity that describes the distribution of light in an environment
從定義上看,我們可以發(fā)現(xiàn)Radiance是在Irradiance的基礎上多除以了單位固體角(也可以看作是在Intensity的基礎上多除以了單位面積)這意味著Radiance比Irradiance多了方向性。
至此,我們所需了解到的單位就已經(jīng)介紹完了,可能你現(xiàn)在還是一頭霧水,或者是已經(jīng)有一些思路了,別慌,我們繼續(xù)往下看。
1.2 Bidirectional Reflectance Distribution Function (BRDF)
? “哇,這么一大長串,這是什么啊?” 這是我第一次看到這一長串英文的反應,或許把它直譯成中文我們可能更有感覺“雙向反射分布函數(shù)”,好吧,感覺還是不知道什么意思(攤手)。簡單的來說BRDF就是當從某一方向打到點p的光,p點的BRDF決定了這束光朝某個方向該怎么反射。具體的來說:
? The Bidirectional Reflectance Distribution Function (BRDF) represents how much light is reflected into each outgoing direction from each incoming direction
個人覺得比較難理解的是為什么是Radiance / Irradiance 而不是 Radiance / Radiance 這里就要從定義上去理解它,因為 Irradiance 是從單位面積上的power,我們要反映的是從這個方向傳過來給這個點上傳遞的單位面積的能量朝另一個方向上的單位面積反射多少能量所以這里我們要先將入射的Radiance轉(zhuǎn)化為Irradiance,再通過BRDF轉(zhuǎn)化為Radiance。
知道了這些知識,現(xiàn)在我們就可以回到剛開始我們的渲染方程了。
渲染方程其實就是基于真實的物理解釋了當一個點朝某一個方向出射的Radiance應該是多少。由于它是基于物理的,這個方程是絕對正確和毋庸置疑的。現(xiàn)在的基于物理渲染的光線追蹤其實都是在解渲染方程,不同的光追的技術(shù),其實就是用不同的方法去求解渲染方程。那么我們應該怎么去求解它呢?——蒙特卡洛方法給出了一個簡單的答案。
嗯,就先寫到這里吧,下一節(jié)再專門解釋蒙特卡洛方法吧,bye~
2.參考
GAMES101-現(xiàn)代計算機圖形學入門-閆令琪
總結(jié)
以上是生活随笔為你收集整理的渲染方程和蒙特卡罗方法(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用路由器桥接手机热点如何通过手机热点
- 下一篇: 【伯乐在线】最好的学习方法是什么样的?