【《Real-Time Rendering 3rd》 提煉總結】(六) 第七章 · 高級著色:BRDF及相關技術

在計算機圖形學中,BRDF(Bidirectional Reflectance Distribution Function,雙向反射分布函數)是真實感圖形學中最核心的概念之一,它描述的是物體表面將光能從任何一個入射方向反射到任何一個視點方向的反射特性,即入射光線經過某個表面反射後如何在各個出射方向上分布。BRDF模型是絕大多數圖形學演算法中用於描述光反射現象的基本模型。

這篇文章,將專註於總結和提煉《Real-Time Rendering 3rd》(實時渲染圖形學第三版)中第七章「Advanced Shading · 高級著色」的內容,並對這章中介紹BRDF的內容進行適當補充和引申,構成全文,成為一個對BRDF進行近乎系統式總結的文章。

圖1 基於BRDF渲染的場景圖 ?Disney 2014.《超能陸戰隊》

一、導讀

簡而言之,通過閱讀這篇總結式文章,你將對BRDF的以下要點有所了解:

  • 一、BRDF的前置知識 · 數學篇
    • 球面坐標 Spherical Coordinate
    • 立體角 Solid Angle
    • 投影面積 Foreshortened Area
  • 二、BRDF前置知識 · 輻射度量學篇
    • 輻射度量學基本參數表格
    • 輻射通量/光通量 Radiant Flux
    • 輻射強度/發光強度 Radiant Intensity
    • 輻射率/光亮度 Radiance
    • 輻照度/輝度 Irradiance
  • 三、BRDF的定義與理解
    • BRDF的定義式
    • BRDF的非微分形式
    • BRDF與著色方程
    • BRDF的可視化表示
  • 四、BRDF的性質
    • 亥姆霍茲光路可逆性
    • 能量守恆性質
    • 線性特徵
  • 五、BRDF模型的分類
    • BRDF經驗模型
    • 數據驅動的BRDF模型
    • 基於物理的BRDF模型
  • 六、基於物理的BRDF · 前置知識
    • 次表面散射 Subsurface Scattering
    • 菲涅爾反射 Fresnel Reflectance
    • 微平面理論 Microfacet Theory
  • 七、基於物理的BRDF · 常見模型
    • Cook-Torrance BRDF模型
    • Ward BRDF模型
  • 八、BRDF與其引申
    • BSSRDF
    • SBRDF(SVBRDF)
    • BTDF與BSDF

二 、BRDF前置知識· 數學篇

在正式了解BRDF的概念之前,有必要先了解數學和輻射度量學相關的前置基礎知識。

2.1 球面坐標 SphericalCoordinate

由於光線主要是通過方向來表達,通常用球面坐標表達它們比用笛卡爾坐標系更方便。

如圖,球面坐標中的向量用三個元素來指定:

圖2 球面坐標

其中:

  • r表示向量的長度
  • θ表示向量和Z軸的夾角
  • Φ表示向量在x-y平面上的投影和x軸的逆時針夾角。

2.2 立體角 Solid Angle

立體角描述了從原點向一個球面區域張成的視野大小,可以看成是弧度的三維擴展。

圖3 立體角

我們知道弧度是度量二維角度的量,等於角度在單位圓上對應的弧長,單位圓的周長是2π,所以整個圓對應的弧度也是2π 。立體角則是度量三維角度的量,用符號Ω表示,單位為立體弧度(也叫球面度,Steradian,簡寫為sr),等於立體角在單位球上對應的區域的面積(實際上也就是在任意半徑的球上的面積除以半徑的平方ω= s/r2 ),單位球的表面積是4π ,所以整個球面的立體角也是4π 。

圖4 立體角

立體角ω有如下微分形式:

domega =frac{dA}{r^{2}}

其中dA為面積微元。而面積微元dA在球面坐標系下可以寫成:

dA=(rd	heta )(rsin	heta dvarphi )=r^{2}sin	heta d	heta dvarphi

因此:

domega =frac{dA}{r^{2}}=sin	heta d	heta dvarphi

2.3 投影面積 Foreshortened Area

投影面積描述了一個物體表面的微小區域在某個視線方向上的可見面積。

對於面積微元A,則沿著與法向夾角為θ方向的A的可見面積為:

Area=Acos	heta

圖5 投影面積

三、BRDF前置知識· 輻射度量學篇

3.1 輻射度量學基本參數表格

如下是截取的wiki(en.wikipedia.org/wiki/R))上的輻射度量學國際單位制的輻射量參數表格:

下面對幾個核心的基本量進行分別介紹。

3.2 輻射通量/光通量 Radiant Flux

輻射通量(Radiant Flux,又譯作光通量,輻射功率)描述的是在單位時間穿過截面的光能,或每單位時間的輻射能量,通常用Φ來表示,單位是W,瓦特。

Phi =frac{dQ}{dt}

其中的Q表示輻射能(Radiant energy),單位是J,焦耳。

3.3 輻射強度/發光強度 Radiant Intensity

對一個點(比如說點光源)來說,輻射強度表示每單位立體角的輻射通量,用符號I表示,單位 Wcdot sr^{-1}

I=frac{dPhi }{domega }

概括一下:輻射強度(Radiant intensity,又譯作發光強度),表示每單位立體角的輻射通量,通常用符號I表示,單位 Wcdot sr^{-1} ,瓦特每球面度。

3.4 輻射率/光亮度 Radiance

輻射率(Radiance,又譯作光亮度,用符號L表示),表示物體表面沿某一方向的明亮程度,它等於每單位投影面積和單位立體角上的輻射通量,單位是W·sr?1·m?2,瓦特每球面度每平方米。在光學中,光源的輻射率,是描述非點光源時光源單位面積強度的物理量,定義為在指定方向上的單位立體角和垂直此方向的單位面積上的輻射通量。光亮度L也可以理解為發光程度I在表面dA上的積分。

一種直觀的輻射率的理解方法是:將輻射率理解為物體表面的微面元所接收的來自於某方向光源的單位面積的光通量,因此截面選用垂直於該方向的截面,其面積按陰影面積技術計算。

輻射率的微分形式:

L=frac{d^{2}Phi }{dAcos	heta domega }

其中:Φ是輻射通量,單位瓦特(W);Ω是立體角,單位球面度(sr)。

另外需要注意的是,輻射率使用物體表面沿目標方向上的投影面積,而不是面積。

概括一下:輻射率(Radiance,又譯作光亮度),表示每單位立體角每單位投影面積的輻射通量,通常用符號L表示,單位是 Wcdot sr^{-1}·m^{-2} ,瓦特每球面度每平方米。

3.5 輻照度/輝度 Irradiance

輻照度(Irradiance,又譯作輝度,輻射照度,用符號E表示),指入射表面的輻射通量,即單位時間內到達單位面積的輻射通量,或到達單位面積的輻射通量,也就是輻射通量對於面積的密度,

用符號E表示,單位 W/m^{2} ,瓦特每平方米。

輻照度可以寫成輻射率(Radiance)在入射光所形成的半球上的積分:

frac{dPhi }{dA}=E=int_{Omega} ^{} L(omega )cos 	heta domega

其中,Ω是入射光所形成的半球。L(ω)是沿ω方向的光亮度。

概括一下:輻照度(Irradiance,又譯作輝度,輻射照度),表示單位時間內到達單位面積的輻射通量,也就是輻射通量對於面積的密度,通常用符號E表示,單位 W /m^{2} ,瓦特每平方米。

四、BRDF的定義與理解

4.1 BRDF的定義式

可以將給一個表面著色的過程,理解為給定入射的光線數量和方向,計算出指定方向的出射光亮度(radiance)。,在計算機圖形學領域,BRDF (Bidirectional Reflectance Distribution Function,譯作雙向反射分布函數 )是一個用來描述表面如何反射光線的方程。顧名思義,BRDF就是一個描述光如何從給定的兩個方向(入射光方向l和出射方向v)在表面進行反射的函數。

BRDF的精確定義是出射輻射率的微分(differential outgoing radiance)和入射輻照度的微分(differential incoming irradiance)之比:

f(l, v) = frac{d L_{o} (v) }{d E(l)}

要理解這個方程的含義,可以想像一個表面被一個來自圍繞著角度l的微立體角的入射光照亮,而這個光照效果由表面的輝度dE來決定。

表面會反射此入射光到很多不同的方向,在給定的任意出射方向v,光亮度dLo與輻照度dE成一個比例。而兩者之間的這個取決於l和v的比例,就是BRDF。

圖6 BRDF圖示

一個最常見的疑問是,BRDF為什麼要取這樣的定義。BRDF為什麼被定義為輻射率(radiance)和輻照度(irradiance)之比,而不是radiance和radiance之比,或者irradiance和irradiance之比呢?

首先,我們分別重溫它們的定義:

  • 輻照度(Irradiance,又譯作輝度,輻射照度),表示單位時間內到達單位面積的輻射通量,也就是輻射通量對於面積的密度,通常用符號E表示,單位 Wcdot m^{-2} ,瓦特每平方米。
  • 輻射率(Radiance,又譯作光亮度),表示每單位立體角每單位投影面積的輻射通量,通常用符號L表示,單位是 Wcdot sr^{-1}·m^{-2} ,瓦特每球面度每平方米。

那麼,關於這個問題,我們可以這樣理解:因為照射到入射點的不同方向的光,都可能從指定的反射方向出射,所以當考慮入射時,需要對面積進行積分。而輻照度irradiance正好表示單位時間內到達單位面積的輻射通量。所以BRDF函數,選取入射時的輻照度Irradiance,和出射時的輻射率Radiance,可以簡單明了地描述出入射光線經過某個表面反射後如何在各個出射方向上分布。而直觀來說,BRDF的值給定了入射方向和出射方向能量的相對量。

概括一下:BRDF(Bidirectional Reflectance Distribution Function,譯作雙向反射分布函數 ),定義為出射輻射率的微分(differential outgoing radiance)和入射輻照度的微分(differential incoming irradiance)之比,描述了入射光線經過某個表面反射後如何在各個出射方向上分布,給定了入射方向和出射方向能量的相對量,單位是 sr^{-1} ,每球面度。

4.2 BRDF的非微分形式

這裡的討論僅限於非區域光源,如點光源或方向光源。在這種情況下,BRDF定義可以用非微分形式表示:

f(l, v) = frac{L_{o}(v)}{ E(l)overline{cos} 	heta _i}

其中:

  • EL是光源在垂直於光的方向向量L平面測量的輻照度(irradiance)。
  • Lo(v)是在視圖矢量v的方向上產生的出射輻射率(radiance)。

4.3 BRDF與著色方程

根據上文所了解了BRDF的定義,現在,就很容易得到BRDF是如何用n個非區域光來擬合一般的著色方程的:

L_o(v) = sum_{k = 1}^{n}{f(l_k, v) otimes E_{L_k} cos 	heta_{i_k}}

其中k是每個光源的索引。使用?符號(分段向量乘法),是因為BRDF和輝度(irradiance)都是RGB向量。考慮到入射和出射方向都擁有兩個自由度(通常參數化是使用兩個角度:相對於表面法線的仰角θ和關於法線的旋轉角度φ),一般情況下,BRDF是擁有四個標量變數的函數。

另外,各向同性BRDFs(Isotropic BRDFs)是一個重要的特殊情況。這樣的BRDF在輸入和輸入方向圍繞表面法線變化(保持相同的相對夾角)時保持不變。所以,各向同性BRDF是關於三個標量的函數。

4.4 對BRDF的可視化表示

一種理解BRDF的方法就是在輸入方向保持恆定的情況下對它進行可視化表示,如下圖。對於給定方向的入射光來說,圖中顯示了出射光的能力分布:在交點附近球形部分是漫反射分量,因此出射光來任何方向上的反射概率相等。橢圓部分是一個反射波瓣(Reflectance Lobe)。它形成了鏡面分量。顯然,這些波瓣位於入射光的反射方向上,波瓣厚度對應反射的模糊性。根據互易原理,可以將這些相同的可視化形成認為是每個不同入射光方向對單個出射方向的貢獻量大小。

圖7 BRDF的可視化表示

五、BRDF的性質

5.1 可逆性

BRDF的可逆性源自於亥姆霍茲光路可逆性(Helmholtz Recoprpcity Rule)。

BRDF的可逆性即,交換入射光與反射光,並不會改變BRDF的值:

f(l,v)=f(v,l)

5.2 能量守恆性質

BRDF需要遵循能量守恆定律。能量守恆定律指出:入射光的能量與出射光能量總能量應該相等。能量守恆方程如下:

Q_{incoming}=Q_{reflected}+Q_{absorb}+Q_{transmitted}

由此可知:

Q_{reflected} leq Q_{incoming}

因此BRDF必須滿足如下的積分不等式,也就是能量守恆性質:

forall l,, int_Omega f_{	ext{r}}(l,v),cos v dv le 1

5.3 線性特徵

很多時候,材質往往需要多重BRDF計算以實現其反射特性。表面上某一點的全部反射輻射度可以簡單地表示為各BRDF反射輻射度之和。例如,鏡面漫反射即可通過多重BRDF計算加以實現。

六、BRDF的模型分類

根據BRDF的定義來直接應用,會有一些無從下手的感覺。而為了方便和高效地使用BRDF數據,大家往往將BRDF組織成為各種參數化的數值模型。

有各式各樣的BRDF模型,如:

  • Phong (1975)
  • Blinn-Phong (1977)
  • Cook-Torrance (1981)
  • Ward (1992)
  • Oren-Nayar (1994)
  • Schlick (1994)
  • Modified-Phong (Lafortune 1994)
  • Lafortune (1997)
  • Neumann-Neumann (1999)
  • Albedo pump-up (Neumann-Neumann 1999)
  • Ashikhmin-Shirley (2000)
  • Kelemen (2001)
  • Halfway Vector Disk (Edwards 2006)
  • GGX (Walter 2007)
  • Distribution-based BRDF (Ashikmin 2007)
  • Kurt (2010)
  • etc.

這些BRDF的模型可以分為如下幾類:

  • 經驗模型(Empirical Models):使用基於實驗提出的公式對BRDF做快速估計。
  • 數據驅動的模型(Data-driven Models):採集真實材質表面在不同光照角度和觀察角將BRDF按照實測數據建立查找表,記錄在資料庫中,以便於快速的查找和計算。
  • 基於物理的模型(Physical-based Models):根據物體表面材料的幾何以及光學屬性建立反射方程,從而計算BRDF,實現極具真實感的渲染效果。

6.1 BRDF經驗模型

關於BRDF的經驗模型,有如下幾個要點:

  • 經驗模型提供簡潔的公式以便於反射光線的快速計算。
  • 經驗模型不考慮材質特性,僅僅提供一個反射光的粗糙近似。
  • 經驗模型不一定滿足物理定律,比如Helmholtz可逆性或能量守恆定律。
  • 經驗模型因為其簡潔和高效性被廣泛運用。

常見的BRDF經驗模型有:

  • Lambert漫反射模型
  • Phong模型
  • Blinn-Phong模型
  • 快速Phong模型
  • 可逆Phong模型

Lambert模型,Phong模型、Blinn-Phong模型和其改進模型都是常見的光照模型,由於篇幅原因,就不展開論述了。

6.2 數據驅動的BRDF模型

數據驅動的BRDF模型可以理解為,度量一個大的BRDF材質集合,並將其記錄為高維向量,利用降維的方法從這些數據中計算出一個低維模型,這樣基於查表的方式,可以直接找到渲染結果,省去大量的實時計算。代表工作如:A Data-Driven Reflectance Model,ACM SIGGRAPH,2003 people.csail.mit.edu/wo

另外,MERL等實驗室使用各類儀器測量了上多種真實材質表面在不同光照角度和觀察角度下的反射數據,並記錄在資料庫中,如MERL BRDF Database。

圖8 一個名為「MERL 100」的BRDF資料庫。其中,含50種「光滑材質」(例如金屬和塑料),和50種「粗糙材質」(例如紡織物)

需要注意的是,由於這些數據由於採集自真實材質,即便渲染出來的結果很真實,但缺點是沒有可供調整效果的參數,無法基於這些數據修改成想要的效果,另外部分極端角度由於儀器限制,無法獲取到數據,而且採樣點密集,數據量非常龐大,所以並不適合遊戲等實時領域,一般可用在電影等離線渲染領域,也可以用來做圖形學研究,衡量其他模型的真實程度。

這邊提供一些資料庫的鏈接供參考:

  • MERLBRDF Database: merl.com/brdf/
  • MITCSAIL: people.csail.mit.edu/ad
  • CAVE Database:www1.cs.columbia.edu/CA

6.3 基於物理的BRDF模型

基於物理的渲染(PBR, Physically-based rendering)是計算機圖形學中用數學建模的方式模擬物體表面各種材質散射光線的屬性從而渲染照片真實圖片的技術,是近年來是實時渲染領域的大趨勢。

基於物理的BRDF模型通過包含材質的各種幾何及光學性質來儘可能精確的近似現實世界中的材料。而一個基於物理的BRDF要必須滿足至少如下兩條BRDF的特性:能量守恆、亥姆霍茲光路可逆性。

常見的基於物理的BRDF模型有:

  • Cook-Torrance BRDF模型
  • Ward BRDF模型

下文將先介紹基於物理的BRDF常常用到到的菲涅爾反射,次表面散射和微平面理論等理論,分別概括這兩種基於物理的BRDF模型。

七、基於物理的BRDF · 前置知識

7.1 次表面散射 Subsurface Scattering

在真實世界中許多物體都是半透明的,比如皮膚、玉、蠟、大理石、牛奶等。當光入射到透明或半透明材料表面時,一部分被反射,一部分被吸收,還有一部分經歷透射。這些半透明的材質受到數個光源的透射,物體本身就會受到材質的厚度影響而顯示出不同的透光性,光線在這些透射部分也可以互相混合、干涉。

次表面散射,Subsurface Scattering,簡稱SSS(又簡稱3S),就是光射入半透明材質後在內部發生散射,最後射出物體並進入視野中產生的現象,是指光從表面進入物體經過內部散射,然後又通過物體表面的其他頂點出射的光線傳遞過程。

圖9 次表面散射示例1

圖10 次表面散射示例2

又如文章開頭,貼出的《超能陸戰隊》中大白的渲染照中,大白的白色身體,略微有些透明的感覺,就是典型的次表面散射。

簡而言之:次表面散射,即光射入表面,在材質里散射,然後從與射入點不同的地方射出表面的一種現象。

圖11 光與表面的相互作用。左圖,可以看到次表面相互作用導致光從入口點重新射出。紅色和綠色圓圈代表兩個不同尺度下的像素所覆蓋的區域。在右邊,所有的次表面散射光都是從入口點發出的,忽略了表面之下的細節。

7.2 菲涅爾反射 Fresnel Reflectance

菲涅耳方程(Fresnel equations)是一組用於描述光在兩種不同折射率的介質中傳播時的反射和折射的光學方程。方程中所描述的反射被稱作「菲涅耳反射」。

菲涅爾反射(Fresnel Reflectance)或者菲涅爾效果(Fresnel Effect),即當光入射到折射率不同的兩個材質的分界面時,一部分光會被反射,而我們所看到的光線會根據我們的觀察角度以不同強度反射的現象。

菲涅爾反射能夠真實地模擬真實世界中的反射。在真實世界中,除了金屬之外,其它物質均有不同程度的菲涅爾反射效果。

關於菲涅爾反射,一個很好的例子是一池清水。從水池上筆直看下去(也就是與法線成零度角的方向)的話,我們能夠一直看到池底。而如果從接近平行於水面的方向看去的話,水池表面的高光反射會變得非常強以至於你看不到池底。

圖12 菲涅爾反射效果

簡單來說,視線垂直於表面時,反射較弱,而當視線並非垂直表面時,夾角越小,反射越明顯。

對於粗糙表面來說,在接近平行方向的高光反射也會增強但不夠達到100%的強度.為何如此是因為影響菲涅爾效應的關鍵參數在於每個微平面的法向量和入射光線的角度,而不是宏觀平面的法向量和入射光線的角度。因此我們在宏觀層面看到的實際上是微平面的菲涅爾效應的一個平均結果。

根據菲涅爾反射,若你看向一個圓球,那麼圓球中心的反射會較弱,而靠近邊緣是反射會較強。另外需注意,這種關係也受折射率影響。

圖13 基於菲涅爾反射,在Unreal Engine 4中實現的邊緣光Shader

7.3 微平面理論 Microfacet Theory

微表面理論假設表面是由不同方向的微小細節表面,也就是微平面(microfacets)組成。每一個微小的平面都會根據它的法線方向在一個方向上反射光線。

表面法線朝向光源方向和視線方向中間的微表面會反射可見光。然而,不是所有的表面法線和半形法線(half normal)相等的微表面都會反射光線,因為其中有些會被遮擋,如下圖所示。

圖14 微平面理論圖示

我們用法線分布函數(Normal Distribution Function,簡寫為NDF),D(h)來描述組成表面一點的所有微表面的法線分布概率。則可以這樣理解:向NDF輸入一個朝向h,NDF會返回朝向是h的微表面數占微表面總數的比例,比如有8%的微表面朝向是h,那麼就有8%的微表面可能將光線反射到v方向。

圖15 由微平面組成的表面。僅紅色微平面的表面法線和半矢量h對齊,能參與從入射光線向量l到視線向量v的光線反射

NDF的定義式:

D(h)=frac{alpha^{2}}{pi((ncdot h)^{2}(alpha^{2}-1)+1)^{2}}

在微觀層面上不規則的表面會造成光的漫反射。例如,模糊的反射是由於光線的散射造成的。而反射的光線並不均勻,因此我們得到的高光反射是模糊的。如下圖。

圖16 模糊的微平面高光反射

八、基於物理的BRDF · 常見模型

8.1 Cook-Torrance BRDF模型

Cook-Torrance模型作為圖形學中最早的基於物理的BRDF模型,由Cook和Torrance提出,是Torrance-Sparrow模型的一個應用版本。現今,Cook-Torrance模型已經成為基於物理著色的標準模型之一。Cook-Torrance模型將物理學中的菲涅爾反射引入了圖形學,實現了比較逼真的效果。

Cook-Torrance微平面著色模型(Cook-Torrance microfacet specular shading model),即Microfacet Specular BRDF,定義為:

f(l,v)=frac{F(l,h)G(l,v,h)D(h)}{4(ncdot h)(ncdot v)}

其中:

  • F為菲涅爾反射函數( Fresnel 函數 )
  • G為陰影遮罩函數(Geometry Factor,幾何因子),即未被shadow或mask的比例
  • D為法線分布函數(NDF)

篇幅原因,就不展開論述了,若大家有興趣,可以參考歷年的SIGGRAPH Course: Physically Based Shading in Theory and Practice系列與其他相關文章。

如SIGGRAPH 2013 Course: Physically Based Shading in Theory and Practice:

blog.selfshadow.com/pub

具體的課程中的兩篇推薦:

  1. Background:Physics and Math of Shading: blog.selfshadow.com/pub
  2. Physically Based Lighting in Call of Duty: Black Ops :blog.selfshadow.com/pub

8.2 Ward BRDF模型

一般情況下,我們可以將BRDF分為兩類:

各項同性(Isotropic)的BRDF

  • 反射不受與給定表面法向夾角的約束
  • 隨機表面微結構

各向異性(Anisotropic)的BRDF

  • 反射比隨著與某個給定的表面法向之間的夾角而變化
  • 圖案的表面微結構
  • 金屬絲,綢緞,毛髮等

Phong和Cook-Torrance BRDF模型都不能處理各項異性的效果,Ward模型卻可以。

Ward模型由Ward於1992年提出[Measuringand Modeling Anissropic Reflection,ACM SIGGRAPH,1992]。Ward模型介紹了更一般的表面法向表達方式:通過橢圓體(ellipsoids)這種允許各向異性反射的形式來表達。

然而,由於沒有考慮菲涅耳因子(Fresnel factor)和幾何衰減因子(geometric attenuation factor),該模型更像是一種經驗模型,但還是屬於基於物理的BRDF模型。

各向同性的Ward模型定義為:

九、BRDF與其引申

有不少與BRDF類似的函數:

  • BSSRDF:Bidirectional Surface Scattering Reflectance Distribution,雙向表面散反射分布函數
  • SBRDF(SVBRDF): spatially varying BRDF(spatial BRDF) 空間BRDF
  • BTDF:Bidirectional Transmittance Distribution Function 雙向透射分布函數
  • BSDF : Bidirectional Scattering Distribution Function,雙向散射分布函數

下面分別進行介紹。

9.1 BSSRDF

BRDF只是更一般方程的一種近似,這個方程就是BSSRDF(Bidirectional scattering-surface reflectance distribution function,雙向表面散反射分布函數)。BSSRDF描述了射出輻射率與入射通量之間的關係,BSSRDF函數通過把入射和出射位置作為函數的輸入,從而來包含這些現象,它描述了沿入射方向從物體表面的一點到另外一點,最後順著出射方向出去的光線的相對量。注意,這個函數還考慮了物體表面的一點到另外一點,最好順著出射方向出去的光線相對量。注意,這個函數還考慮了物體表面不一致的情況,因為隨著位置的變化,反射係數也會發生變化。在實時繪製中,物體表面上的位置可以用來獲取顏色紋理、光澤度,以及凹凸紋理圖等信息。

圖17 BRDF渲染圖

圖18 BSSRDF渲染圖

9.2 SBRDF(SVBRDF)

一個捕獲基於空間位置BRDF變化的函數被稱為空間變化的BRDF(Spatially Varying BRDF ,SVBRDF)或稱空間BRDF,空間雙向反射分布函數(Spatial BRDF ,SBRDF)。

9.3 BTDF與BSDF

即使一般的BSSRDF函數,無論其多麼複雜,仍然忽略了現實世界中非常重要的一些變數,比如說光的偏振。此外,也沒有處理穿過物體表面的光線傳播,只是對反射情況進行了處理。為了處理光線傳播的問題,對物體表面定義了兩個BRDF和兩個BTDF(T表示傳播「Transmittance」),每側各有一個,這樣就組成了BSDF(S表示散射「Scattering」)。

圖19 當用於鏡面反射的BRDF和用於鏡面透射的BTDF使用菲涅爾公式進行調製渲染時,得到了如真實玻璃視覺上精確的反射和透射的角度變化。來自《Physically Based Rendering, Third Edition》Figure 8.10

而在實踐中,這些更複雜的函數很少使用,BRDF和SVBRDF足以勝任一般情況下表面渲染的效果。

十、其他參考

[1] graphics.stanford.edu/~

[2] scratchapixel.com/lesso

[3] wiki.nuaj.net/index.php?

[4] allegorithmic.com/pbr-g

[5] icourses.cn/coursestati

[6] docs.unrealengine.com/l

[7] en.wikipedia.org/wiki/F

[8] zhuanlan.zhihu.com/p/21

[9] en.wikipedia.org/wiki/R

[10] Real Shading in Unreal Engine 4:cdn2.unrealengine.com/R

[11] SIGGRAPH 2013 Course: Physically BasedShading in Theory and Practice:blog.selfshadow.com/pub

[12] Physically Based Rendering, Third Edition

The end.


推薦閱讀:

VRay for SketchUp工業產品表現之煤油燈
VRay for SketchUp環境阻光(AO)的簡介與應用
##譯## The Comprehensive PBR Guide by Allegorithmic — Vol.2
支持導入任意貼圖的maya工具——材質管理器

TAG:游戏开发 | 渲染 | 计算机图形学 |