Environment Lighting2

Shadow from environment lighting:工業界一般採用環境光中較爲明顯的陰影作爲主要陰影,也就是一個陰影或者兩個三個左右,由於每一個着色點都要考慮着色和陰影,所以不能直接使用採樣的方法,這裏使用效率更好的方法PRT。

傅里葉級數展開:一個函數可以由非常多的sin和cos函數表示,這些cos又叫做基函數。

product integral:這個式子是一種卷積計算,也是filtering,得到結果的頻率由式子中最低頻率的部分決定

 

 

 Basis Functions:可以表示出其他函數的一系列函數。其中Bi(x)就是基函數。

 

 

 Spherical Harmonics:定義在球面上的一系列二維的基函數,這些基函數可以看作是球面上的點,這些點可以用θ和φ表示。圖形表示出Spherical Harmonics,每一層的頻率都不一樣。

 

 

 Spherical Harmonics的各項可以用數學式表達。一個二維函數的基函數係數可以用product integral立馬算出來

 

Prefilter:Prefilter+一次查詢等於沒有filter加上多次查詢求平均

 

 

 在render Equation中,L和BRDF和cos項,其中cos和BRDF看作一體,也就是光源L和BRDF項的積分,同時也是product integral,由於光有高頻率和低頻率,但BRDF在diffuse時的頻率很低,所以在diffuse時render Equation的頻率只由BRDF決定,也就是一個低通濾波器。

diffuse時的BRDF投影到Spherical Harmonics,基本可以用前三階表示。

 

 

 由於在diffuse時render Equation的頻率只由BRDF決定,光照的高頻就沒有用,所以可以用前三階的Spherical Harmonics來近似光照,也能得到非常好的效果。這也是Spherical Harmonics的應用。

 

 

 在計算環境光下的陰影時,如果通過直接計算積分的方式,會非常費力,所以這時使用其他方法來計算

 Precomputed Radiance Transfer:把L(i)作爲lighting項,後面作爲light transport項,整體上分爲兩項。其中光照是二維,由於看的方向是固定的,所以BRDF也是二維的, V(i)也是二維的。L(i)用基函數近似表示。

 

 

在diffuse的情況下,BRDF是常數,可直接提取到積分外,這時積分內就剩下光照和visibility項,visibility項和cos也就是light transport,然後用基函數近似光照,把求和符號拿到積分限外,li作爲常數也拿到積分外,積分內就是基函數乘以light transport,這種情況也就是light transport投影到基函數上,得到的結果就是常數,所以這裏可以進行預計算,在它們都是不變的情況下,即場景不變visibility項不變,光照也不變。此時的積分結果就是一個數,最終的結果也就是一個點乘了。所以PRT的代價也就是如果場景變化了,就需要重新計算。PRT的使用情況也就是diffuse和場景中物體不變。對於光照,可以預計算不同的光照,比如室內光照和室外光照,只需要改變對應基函數的係數就可以了,但時如果光照發生旋轉,就要用Spherical Harmonics來算出旋轉後的結果。

 光照在發生旋轉後,由SH基函數近似的光照,其基函數會發生變化,SH基函數會由同階的基函數線性組合成,所以可以非常迅速的完成光照的旋轉操作

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章