微表面分布函數(Microfacet Distribution Function)確切含義
《Physically-Based Shading Models in Film and Game Production》中說:“D()的值不局限於0到1,可以任意大”,這句話使我比較好奇D()的確切含義。
以下引自《Physically-Based Shading Models in Film and Game Production》:
(http://renderwonk.com/publications/s2010-shading-course/hoffman/s2010_physically_based_shading_hoffman_a_notes.pdf)
然後在pbrt中找到了關於D的一些描述:
以下摘自pbrt p537~538:
根據
可以領會出D的確切含義。
可以把D看作是一個畫在半球上的分布表,它是這樣制作做出來的:
取單位面積宏表面,統計其上的微表面面積分布情況,
將單位半球面分割成無限多個面積無限小的球面元,
設中心方向為w的球面元為s(w),其面積為ds,
s(w)覆蓋包含w在內的一簇方向,
設以這簇方向為法向的所有微表面面積之和為A(w),
則A(w)在s(w)上的密度為A(w)/ds。
將此密度值填寫到球面元s(w)上,半球面表格D就制作成功了。
普通表格都是畫在平面紙上,而此表格畫面半球面上。
根據上面表格D的制作過程,便可很清楚地看出分布D的確切含義:
D(w)表示:單位宏表面上,法線落在方向為w的單位立體角內的微表面總面積。
因此D(w)*dw表示單位宏表面上法線落在微分立體角dw內的微表面總面積。
設theta為w與宏表面法線的夾角,根據幾何關系易知法向為w的微表面與宏表面之間的夾角也為theta。
於是D(w)*dw*cos(theta)表示:單位宏表面上法線落在微分立體角dw內的微表面總面積在宏表面上的投影。
由於各方向的微表面在宏表面上投影總和恰好覆蓋宏表面,所以
D(w)*dw*cos(theta)在半球上的積分應等於宏表面的面積,由於這裏我們取的是單位宏表面,所以面積為1,即:
微表面分布函數(Microfacet Distribution Function)確切含義