天天看點

GAMES101-現代計算機圖形學學習筆記(17)材質

GAMES101-現代計算機圖形學學習筆記(17)

Lecture 17: Materials and Appearances

    • GAMES101-現代計算機圖形學學習筆記(17)
  • 材質
    • 反射
    • 折射
    • Fresnel Reflection / Term 菲涅爾項
    • Microfacet Material
      • Microfacet Theory 微平面理論
    • Isotropic / Anisotropic Materials (BRDFs)

原課程視訊連結以及官網

b站視訊連結: link.

課程官網連結: link.

材質

自然界中材質通常用來表示光與物體表面的互動,而在圖形學中材質就是 BRDF,因為 BRDF 描述了光線打到物體表面是如何被反射的,它所反射的範圍是表面半球。

Diffuse / Lambertian Material

Diffuse / Lambertian Material 會向着色點表面半球的各個方向進行均勻反射:

GAMES101-現代計算機圖形學學習筆記(17)材質

之前經驗上定義這種材質是通過 RGB 三個通道的顔色來定義的,即這種材質在不同顔色通道上反射的分量是不同的。

現在考慮對這種材質進行更加真實的定義,考慮能量守恒定理(出射光線的能量永遠不能超過入射光線的能量(發光面除外))且這種材質的入射能量 L i ( ω i ) L_{i}\left(\omega_{i}\right) Li​(ωi​) 和 BRDF f r f_{r} fr​ 為常數,是以根據前面定義的渲染方程:

L o ( ω o ) = ∫ H 2 f r L i ( ω i ) cos ⁡ θ i   d ω i \begin{aligned} L_{o}\left(\omega_{o}\right) &=\int_{H^{2}} f_{r} L_{i}\left(\omega_{i}\right) \cos \theta_{i} \mathrm{~d} \omega_{i} \end{aligned} Lo​(ωo​)​=∫H2​fr​Li​(ωi​)cosθi​ dωi​​

就有 L o ( ω o ) = π f r L i L_{o}\left(\omega_{o}\right)=\pi f_{r} L_{i} Lo​(ωo​)=πfr​Li​,且 L o = L i L_{o}=L_{i} Lo​=Li​,是以漫反射的 BRDF為: f r = 1 / π f_{r} = 1/\pi fr​=1/π。對于不同顔色的 Diffuse / Lambertian Material, 隻需要引入 albedo 來表示反射顔色即可:

GAMES101-現代計算機圖形學學習筆記(17)材質

Glossy material (BRDF)

這是一種更加粗糙的材質,表面會産生沿一個方向的散射:

GAMES101-現代計算機圖形學學習筆記(17)材質

deal reflective / refractive material (BSDF)

這種材質會産生反射和折射:

GAMES101-現代計算機圖形學學習筆記(17)材質

反射

鏡面反射角度的計算可以通過相對于法線的角度 ( ω o , ω i \omega_{o},\omega_{i} ωo​,ωi​)的點積進行計算,也可以通過方向在平面上的投影中的角度( ϕ o , ϕ i \phi_{o},\phi_{i} ϕo​,ϕi​)來進行計算:

GAMES101-現代計算機圖形學學習筆記(17)材質

折射

折射可以通過 Snell’s Law 進行計算,定義入射光的折射率為 η i \eta_{i} ηi​ ,折射光的折射率為 η t \eta_{t} ηt​,計算折射角的方式就為:

η i sin ⁡ θ i = η t sin ⁡ θ t cos ⁡ θ t = 1 − sin ⁡ 2 θ t = 1 − ( η i η t ) 2 sin ⁡ 2 θ i = 1 − ( η i η t ) 2 ( 1 − cos ⁡ 2 θ i ) \begin{aligned} \eta_{i} \sin \theta_{i} &=\eta_{t} \sin \theta_{t} \\ \cos \theta_{t} &=\sqrt{1-\sin ^{2} \theta_{t}} \\ &=\sqrt{1-\left(\frac{\eta_{i}}{\eta_{t}}\right)^{2} \sin ^{2} \theta_{i}} \\ &=\sqrt{1-\left(\frac{\eta_{i}}{\eta_{t}}\right)^{2}\left(1-\cos ^{2} \theta_{i}\right)} \end{aligned} ηi​sinθi​cosθt​​=ηt​sinθt​=1−sin2θt​

​=1−(ηt​ηi​​)2sin2θi​

​=1−(ηt​ηi​​)2(1−cos2θi​)

​​

GAMES101-現代計算機圖形學學習筆記(17)材質

Fresnel Reflection / Term 菲涅爾項

描述能量被反射的占比情況,當得到反射能量的占比後,通過能量守恒定理就能計算出折射的能量部分。它描述了一種現象,當視線與觀察物體表面越趨于平行時,反射的能量越多;反之反射的能量越少:

GAMES101-現代計算機圖形學學習筆記(17)材質

如何計算菲涅爾項?

精确計算 : 首先計算出兩個極化的反射率,然後求平均

GAMES101-現代計算機圖形學學習筆記(17)材質

近似計算 :

GAMES101-現代計算機圖形學學習筆記(17)材質

Microfacet Material

Microfacet Theory 微平面理論

微平面理論假設物體表面由不同方向的微小平面組成。每一個微小平面都會根據它的法線方向在一個方向上反射光線。基于該模型,我們對物體的表面進行觀察的結果可分為遠處和近處兩種結果的。遠處看到的物體表面呈現的是物體表面處無數微小平面與光照的總作用結果,而近處看到的物體表面呈現的是物體真正的幾何資訊。

GAMES101-現代計算機圖形學學習筆記(17)材質

微平面理論旨在模拟三種現象:

①光滑的平面表面法向分布較為一緻,粗糙的平面表面法線分布較為雜亂;

②在粗糙的表面上,微平面可以遮擋其他的微平面的光線,在其他微平面上投射陰影;

③菲涅爾現象

它引入了三個函數來解決:D、G、F

D 是法線分布函數,它解釋了在觀看者角度反射光的微平面的比例。

當定義了物體表面是由無數微小平面組成後,就可以通過這些微小平面的法線分布函數來計算該處與光線的反射。法線分布函數描述了在這個表面周圍的法線分布情況,當輸入向量h時,如果微平面中有35%與向量h取向一緻,則法線分布函數就會傳回0.35:

GAMES101-現代計算機圖形學學習筆記(17)材質

G 是幾何衰減函數(shadowing masking term),它解釋了微平面彼此之間的陰影和遮罩。

F 是菲涅爾函數,它解釋了菲涅耳效應,該效應使得與表面成較高的入射角的光線會以更高的鏡面反射率進行反射。

GAMES101-現代計算機圖形學學習筆記(17)材質

通過微平面理論我們能渲染出更加真實的結果:

GAMES101-現代計算機圖形學學習筆記(17)材質

Isotropic / Anisotropic Materials (BRDFs)

有些地方的高光會出現一條一條的形狀,這是如何形成的?

GAMES101-現代計算機圖形學學習筆記(17)材質

關鍵是潛在表面的方向性導緻的,當表面法線存在較多方向性時,會出現這種條紋狀高光項(Anisotropic),反正會出現圓形狀高光項(Isotropic):

GAMES101-現代計算機圖形學學習筆記(17)材質

從角度上來進行了解,Anisotropic BRDFs 不僅和相對的方位角有關,還和絕對的方位角有關:

GAMES101-現代計算機圖形學學習筆記(17)材質

參考:

https://zhuanlan.zhihu.com/p/255027783.

https://graphicscompendium.com/gamedev/15-pbr.

繼續閱讀