圖形學理論知識 BRDF 雙向反射分布函數
Bidirectional Reflectance Distribution Function
BRDF理論
BRDF表示的是雙向反射分布函數(Bidirectional Reflectance Distribution Function),它描述了光線如何在物體表面進行反射,可以用來描述材質屬性。
BRDF的輸入參數是入射光的的仰角、方位角、出射光的仰角、方位角,還與入射光的波長相關。
BRDF的輸出結果是一個數值,表示在給定的入射條件下,出射方向上反射的相對能量,另外一種理解方式是用光子的概念來考慮,BRDF給出了入射光子以特定方向離開的概率。
BRDF有一些重要的屬性:
1.Helmholtz互異性(Helmholtz Reciprocity):入射角和出射角互換,函數值保持不變。
2.能量守恆:出射能量不可能大於入射能量,所以BRDF必須進行歸一化處理。
BRDF在描述光線與物體相互作用方面是一個很好的抽象,但只是更一般方程的一種近似。
更一般的方程:雙向表面散反射分布函數(Bidirectional Surface Scattering Reflectance Distribution)BSSRDF.
一般的BSSRDF,雖然復雜,仍然忽略了一些非常重要的變量,比如光的偏振。
BRDF沒有描述內部光線散射現象。
此外,要注意,反射函數,都沒有處理穿過物體表面的光線傳播,只是對反射情況進行了處理。
SVBRDF: spatially varying BRDF
SBRDF: spatial BRDF
處理透射問題:BTDF
T:Trasmittance
為了處理光線傳播問題,對物體表面定義了兩個BRDF和兩個BTDF,每側各有一個,這樣就組成了BSDF
S : Scattering
但是太過復雜的公式很少用到,通常BRDF和SVBRDF就可以描述一般物體表面。
給定一個BRDF和入射光的輻射率分布,反射方程就可以確定在給定觀察方向上的出射輻射率大小,可以通過對所有方向上的入射光輻射率在物體表面以上的半球內進行積分得到。
有一種理解BRDF的方法就是在輸入方向保持恆定的情況下對它進行可視化表示,用圖形表示出各個方向的出射光的能量分布:
下面是幾種BRDF的圖形表示:
各種BRDF理論模型:
一個想法是使用微小面元對物體表面進行建模,每一個小平面都是表面上的一個小平面鏡,具有隨機的大小和角度。
在這些模型中,通常賦予小平面一個高斯分布的尺寸和角度(高斯分布比較簡單)。
另外一種平面表示技術稱為“高度相關Height Correlation”,因為小平面具有和光波長近似的尺寸,所以會出現干涉、衍射。
在物理方面需要考慮的一個重要因素是Fresnel反射,一個完整的Fresnel公式依賴於折射系數、消光系數以及入射角等因素。
計算機圖形學常常會忽略偏振,可以使用兩個偏振的平均值。
一些BRDF理論模型的局限性在於沒有考慮各向異性的情形。
如果視點和光源位置不動,當材質的采樣點繞法線方向旋轉時,如果它的顏色發生變化,那么這個材質就是各向異性的。
像刷洗過的金屬、上過漆的木頭、織布、毛皮以及頭發這樣的材質都有一個確定的方向分量。
理論模型在給定材質樣品的表示方面不一定有用。
另外的一種方法就是從實際物體的表面來獲取BRDF數據。
測角儀、圖像雙向反射計,以及基於圖像的方法都可以根據入射角和出射角測量得到反射信息。
有些數據庫在網上是公開的。
另外一種表示BRDF的方法是用基相加(Basis Summation)技術,這些方法主要着眼於BRDF自身的形狀表示。
基相加技術就是努力將BRDF的表面表示成一組函數的加權和。
參考資料
《實時計算機圖形學》,第二版
《real-time rendering 3rd》