2020年3月16日 星期一

淺談 physically based rendering (2)


  • 前言
上一個章節簡單的介紹並狹隘的定義了 PBR,

本章節會針對基於物理的反射模型(BRDF)做深入的介紹。

我預計會在前幾個章節做介紹,實作部分會留到最後在做說明。

  • Rendering equation
先複習一下上一個章節提到的 Rendering equation (渲染方程式),


我們將焦點放在反射光的部分



首先,我相信各位一定對這個積分符號感到頭痛。

這符號叫做 Surface integral over hemisphere (半球積分)。

當我們用顯微鏡放大一個表面崎嶇物體的特定位置 x 的時候,

會發現 x 點在一個平面上。

對於這個平面上的 x 點,他的光源可能方向會是涵蓋了半個球型。

因此方程式使用半球積分來表示對所有方向的光源的反射計算。



但是為了不讓問題複雜化,我之後會只針對單一光源(太陽光)做說明。

所以渲染方程式的反射光可以簡化成


其中,

 是要渲染的位置

 是光源方向

 是反射方向

 是光源波長,這裡我們可以想成是光源本身,如果光源強度固定,可以忽略這個參數

 是時間,如果光源不隨時間變化,可以忽略這個參數


 是  的法向量

因此,反射光可以分成三個部分


radiant 可以想像成是來源光的能量

cos 項只要知道 Lambert 光照原理應該就不難理解其代表的意義。



  • 反射光
對於反射光,依據  Wes McDermott[1] 的解釋,可以分成兩個種類


圖片引用來源: Wes McDermott「The Comprehensive PBR Guide by Allegorithmic - vol. 1 Light and Matter : The theory of Physically-Based Rendering and Shading」©Allegorithmic

Specular : 鏡面反射,也有人稱作 Highlight(高光),接觸到物體後直接反射。

Diffuse   : 擴散反射,和 Specular 不同的地方在於接觸到物體後,會進入到物體內部,
                 然後在物體內部繼續反射,直到離開物體;
                 因為在物體內作用的特性,這個光又叫做 Subsurface Scattering (表面下散乱)。

兩者的差別就是有沒有進入物體內。

因此,在做反射計算時,先要決定來源光被分解成 Specular 和 Diffuse 的比例。


物體反射的 radiant energy (輻射能量) 佔總 radiant energy 的百分比,就叫做反射率。

這個定義剛好解釋了 Specular 和 Diffuse 比重的關係。

反射率越高, Specular 比重越大。

而計算反射率的方法是使用下列公式

當光線從 material (媒質) A 垂直射到 material B,

令 material A 的 index of Refraction (折射率, 簡稱 ior) 為 

material B 的 ior 為 

則垂直反射率 R 為


因為是垂直入射的反射率(和法線夾角為0),所以 R 又可寫成 F0。

當光線和法線夾角為 θ 時,可以使用  Schlick's approximation 去求得夾角 θ 的反射率。

  • 結論
總結上述的討論,我們可以將反射光的部分改寫成下列公式


其中

frd  為 Diffuse 的 BRDF

frs  為 Specular 的 BRDF

在這裡,為了方便公式顯示,我省略了  和  


本章節簡單介紹 BRDF 的內容分成 Diffuse 和 Specular 的部分,

接下來會根據每個部份再繼續去介紹。



  • References


[1] Wes McDermott「The Comprehensive PBR Guide by Allegorithmic - vol. 1 Light and Matter : The theory of Physically-Based Rendering and Shading」©Allegorithmic


沒有留言:

張貼留言