paper - 2015 - Evaluation of Visual Parameters in Volumetric Path Tracing(1)
paper - 2015 - Evaluation of Visual Parameters in Volumetric Path Tracing(1)
Skånberg, R., utfört, E., Jönsson, H.D., & Ropinski, E.T. (2015). Evaluation of Visual Parameters in Volumetric Path Tracing.
1. introduction
在互動式體積渲染領域,研究重點是使用巧妙的方法、近似和簡化來解決體積渲染方程,以提供互動式幀速率。為了評估所實施方法的準確性,需要將其與一些參考解決方案進行比較。求解方程的一種方法是使用一種稱為路徑跟蹤的方法,當正確實現時,該方法將提供真實結果的估計。這一估計在給定的計算時間內收斂到真實結果,並且在一般情況下是一個相當緩慢的過程,與任何互動式過程都相去甚遠
3 Physically based rendering
3.1 基本輻射計量學
flux:單位時間通過某個區域的所有能量,單位是W,或J/s
irradiance E & Radiant Exitance M: 單位面積單位時間的能量(面積為垂直於光線方向),\(W/m^2\)
solid angle sr :
Intensity I : 表示單位立體角,單位時間通過某個區域的所有能量,然而,該量僅用於指定點光源的光譜分佈;
Radiance L :從某一個單位立體角看過去的單位面積單位時間上接收的能量,\(W/sr\)
3.3 The rendering equation
這個方程是遞迴的,並且描述了光離開點x',到達另一個點x,自發光項,和x''到x'處的光對x‘x方向的貢獻在半球上的積分和,與幾何項g的乘積。(即,x''處發出的光有多少會沿著x'x傳輸,以及x'處發出的光有多少往x’x傳輸)。
但是,通常會使用radiance的表述方式,見方程2:
該模型的一個重要限制是,光在被真空隔開的平坦表面之間傳輸。任何體積效應,例如大氣散射和不透明介質,都不包括在方程中,因為它需要光與穿過的介質相互作用的可能性.
3.4 path tracing
path tracing是用來解渲染方程的。[[games101-4-Ray Tracing]] 一文中有部分描述。文中描述了光線爆炸,以及如何處理的過程。
3.4.1 direct light sampling
[[games101-4-Ray Tracing]] 一文中也介紹了直接對光源進行取樣的實現。
那麼這個時候方程可以寫成:
發射項並沒有完全消除,這是為了處理這樣的情況,即發射表面是第一個被眼睛的路徑擊中的表面,因為這是包括直接可見物體的發射的唯一機會。還有第二個條件是包含發射,即路徑中的前一個取樣來自完美鏡面反射。這要歸功於BRDF中的δ函式,它不可能對來自除完美反射方向以外的任何取樣方向的光做出貢獻。
3.5 surface reflection
光在穿過一個不同介質的表面的時候,會發生折射,和反射。
可以閱讀: 菲涅爾方程(Fresnel Equation)
關鍵公式如下,有:
Fresnel Equations | |
---|---|
unpolarized reflection | |
snell's law | |
schlick's approx |
3.6 bidirectional scattering distribution function, BSDF
\(\rho(x,\omega_o,\omega_i)\) ,這個函式表示的意思是光從\(\omega_i\)方向過來,然後經過散射,進入到\(\omega_o\)方向的比例。
通常有三種類型的雙向分佈函式,即雙向反射分佈函式(BRDF)、雙向透射分佈函式(BTDF)和相位函式。BTDF表示折射或透射到表面的光,但通常被實現為具有翻轉表面法線的BRDF,並被縮放以匹配透射的光量。因此,本文只討論BRDF和相位函式。
3.7 bidirectional reflectance distribution function, BRDF
reflectance描述BRDF是對於反射光的。文中用\(\rho_r(x,\omega_o,\omega_i)\)表示。
3.7.1 diffuse reflection
最簡單的漫反射模型是lambertian模型,見下式:
它假設表面是理想的漫反射。任何碰觸到表面的光都會被均勻的散射到各個方向。
3.7.2 perfect specular reflection
最簡單的鏡面反射模型是完全反射。如圖11中的黑色虛線箭頭。
3.7.3 glossy reflection
微表面模型示意圖見下:
詳細內容可以參見: https://zhuanlan.zhihu.com/p/434964126
4. Volume Rendering
基本概念可以參見: 蒙特卡洛體渲染(一):基本概念
主要由吸收,散射,消光係數,透射
消光係數(吸收和out散射)對光的衰減可以得到radiance的透過率,公式如下:
如果消光係數是常數,那麼,公式15可以簡化為:
4.6 single scattering albedo
這是一個無光譜單位的量,在單位的情況下,它不會導致任何能量因吸收而損失,相反,零的反照率會吸收所有能量
4.7 in scattering
將所有方向進入的光對出射方向的共享積分後如下:
加上自發光項為:
公式裡面的\(\rho_p\)表示的是相函式。
4.9 相函式
相函式可以理解成BRDF針對volume的版本。主要有兩個關鍵的不同點,相函式考慮的是整個單位球,第二點是相函式對球的積分是1. 相位函式有效地定義了特定方向散射的概率分佈。
非常常見的相函式是,Henyey-Greenstein相函式。他通過單個引數,各項異性因子,來控制散射分佈。各項異性因子的範圍是\([-1,1]\)。當g=-1的時候,完全的後向散射,g=1的時候,是完全的前向散射,g=0的時候是各項同性散射。
注意,與BRDF不同,這些相位函式不會改變光的光譜分佈,它們只定義散射方向的概率。
4.10 volume rendering equation
\(x' = x_0 + t' \omega\)。
第一個公式的第一部分表示的是x0處光強,經過衰減後有多少到達x處。
第一個公式的第二部分表示的是每個位置x‘ 內散射的能量對x出的貢獻的積分。
4.13 emission absorption model
這個模型僅考慮發射,和吸收,這個時候,公式24中的內散射項用發射項進行替代,變為:
4.14 single scattering model
一種更復雜的方法是單散射模型,它也部分解決了體積渲染方程。這裡它將公式24中的內散射項用直接光源取樣進行替代:
4.14 volumetric path tracing
這個方法是沿著射線方向進行距離取樣。如果取樣得到的距離。如果該距離小於沿射線最近的曲面相交點的距離,則介質中會發生散射,路徑將從該散射點而不是曲面上的點進行評估。為了簡單起見,該方程是假設參與介質是均勻的且不發光。
因此,路徑跟蹤演算法基本上擴充套件了光在介質中散射的概率。這意味著基本演算法保持不變,但在散射的情況下,將使用相位函式而不是表面模型。具體公式如下:
對於非均勻介質的話,透過率一項會進行更改,\(\sigma_t e^{-\sigma_ts}\),更改為:\(\sigma_t(x+s\omega) T_r(x, x+s\omega)\)。
5. Monte Carlo Integration
定義的列表:
- X: 隨機變數;
- P(x):累積分佈函式,CDF。表示隨機取樣的值,小於等於x的概率;
- p(x):概率密度函式,PDF。隨機取樣某個值的概率。
-
\(\xi\) : 規範一致隨機變數,它在
[0,1]
範圍取樣概率相等。
一個函式的期望的公式可以寫為:
一維的情況,使用均勻取樣的Monte Carlo估計fx積分結果,見公式29。
Xi表示在有效區間[a,b]
範圍隨機取樣的值。如果 \(f(x) = \int_0^2 (x^2+1) dx\) 。那麼隨著取樣數量的增加,估計誤差逐漸減小。
5.1 improving the Monte Carlo estimator
使用非均勻取樣,需要引入取樣的概率密度函式,如下:
此處需要注意的是p的選擇,對結果的影響比較大。
5.2 the inversion method
為了從任意PDF p(x)中提取樣本Xi,需要執行以下步驟:
- 計算累積分佈函式,CDF;\(P(x) = \int_0^xp(x')dx'\)
- 計算CDF的倒數,\(P^{-1}(x)\);
- 使用均勻分佈的\(\xi\),計算得到X,\(X = P^{-1}(\xi)\) 。
可以參見:
(24條訊息) 蒙特卡洛方法(Monte-Carlo Simulation)_Hearthougan的部落格-CSDN部落格_monte-carlo
(24條訊息) 逆取樣(Inverse Sampling)和拒絕取樣(Reject Sampling)原理詳解_anshuai_aw1的部落格-CSDN部落格_逆取樣
示例,對於指數函式可以得到如下結果:
6. implementation
TODO