以往靠經(jīng)驗法則製作出的光線演算法已經(jīng)無法滿足大多數(shù)人挑剔的眼睛,要製作更逼真、物理上正確的畫面就得想辦法套用光學方程式到繪圖演算法上。底下先把常用專有名詞做個整理,由於專有名詞的中文翻譯反而會讓我把不同名詞的意義搞混,底下索性全都用英文來表示
# 名詞: 符號 (單位)
1. radiant energy: Q (J)
2. radiant flux: Φ[phi] = dQ/dt (J/s 或 W)
3. irradiance: dΦ/ dA 或 E (W / m2 )
若EL代表某個光源的irradiance,光源方向與表面法向量夾角為θ,則表面接收到的irradiance為:
現(xiàn)實中一個表面通常會有來自n個不同光源的照射,這時候只需要把每個irradiance加總。
由上可知irradiance會隨著距離平方而遞減
▲radiant intensity常用於表示點光源的強度
6. radiance: L = d2Φ/ (dAprojdω) = d2Φ/ (dAcosθdω) (W / m2-sr)
dA為入射表面的面積,dAproj為dA投影到垂直於光線向量的平面的面積。
radiance代表單一射線的光。
因為攝影機的鏡頭只容許特定方向的光線進入,不處理所有方向來的光線,所以不使用irradiance,而是用radiance。理論上每個pixel要處理從一個solid angle來的所有radiance,將積分後得到的irradiance儲存到render target裡。但通常都採用簡化的方法,即每個pixel只接收一條射線的光。
radiance和irradiance與intensity之間的關(guān)係如下:
不管攝影機距離表面多遠,radiance不會因距離產(chǎn)生變化。
參考資料
Real-Time Rendering, Third Edition
# 名詞: 符號 (單位)
1. radiant energy: Q (J)
2. radiant flux: Φ[phi] = dQ/dt (J/s 或 W)
3. irradiance: dΦ/ dA 或 E (W / m2 )
若EL代表某個光源的irradiance,光源方向與表面法向量夾角為θ,則表面接收到的irradiance為:
現(xiàn)實中一個表面通常會有來自n個不同光源的照射,這時候只需要把每個irradiance加總。
irradiance可用於表示directional lights的強度,模擬距離場景非常遠的光源。由於距離過遠,在場景中光線強度不會因為距離而產(chǎn)生足夠大的變化,這時可將此數(shù)值當作常數(shù)使用。
4. solid angle: A / r2 或 ω (sr)
其中A為球表面積, 例如整顆球的表面積為4πr2,則整顆球的solid angle為4π sr
5. radiant intensity: dΦ/ dω 或 I (W / sr)
intensity可表示所有從光源表面出發(fā),射向特定方向的光
可用以下方程式與irradiance互相轉(zhuǎn)換:
4. solid angle: A / r2 或 ω (sr)
其中A為球表面積, 例如整顆球的表面積為4πr2,則整顆球的solid angle為4π sr
5. radiant intensity: dΦ/ dω 或 I (W / sr)
intensity可表示所有從光源表面出發(fā),射向特定方向的光
可用以下方程式與irradiance互相轉(zhuǎn)換:
▲radiant intensity常用於表示點光源的強度
dA為入射表面的面積,dAproj為dA投影到垂直於光線向量的平面的面積。
radiance代表單一射線的光。
因為攝影機的鏡頭只容許特定方向的光線進入,不處理所有方向來的光線,所以不使用irradiance,而是用radiance。理論上每個pixel要處理從一個solid angle來的所有radiance,將積分後得到的irradiance儲存到render target裡。但通常都採用簡化的方法,即每個pixel只接收一條射線的光。
radiance和irradiance與intensity之間的關(guān)係如下:
不管攝影機距離表面多遠,radiance不會因距離產(chǎn)生變化。
參考資料
Real-Time Rendering, Third Edition