Please enable JavaScript.
Coggle requires JavaScript to display documents.
(有viewmap(.dat), 沒viewmap) - Coggle Diagram
-
沒viewmap
FPGA_BSDF
-
-
$$f_s = \frac{D(h) \cdot F(v, h) \cdot G(l, v, h)}{4 \vert{}n \cdot l\vert{} \vert{}n \cdot v\vert{}}$$
-
-
-
-
C. 幾何遮蔽函數 $G$ (Geometry Function - Smith GGX)模擬微觀表面高低不平,互相遮擋光線造成的能量流失。Blender 使用分離的 Smith 近似公式:$$G(l, v, h) = G_1(l) \cdot G_1(v)$$$$G_1(x) = \frac{2 (n \cdot x)}{(n \cdot x) + \sqrt{\alpha^2 + (1 - \alpha^2)(n \cdot x)^2}}$$(註:實時渲染中,$x$ 會分別代入 $l$ 與 $v$。)
B. 菲涅爾方程式 $F$ (Fresnel - Schlick's Approximation)決定了從不同視角看過去時,反射強度的變化(視角越平,反射越強)。Blender 使用 Schlick 近似法:$$F(v, h) = F_0 + (1 - F_0)(1 - (v \cdot h))^5$$$F_0$:基礎反射率(金屬為自身的 Base Color,非金屬通常為固定值如 0.04)。
A. 法線分佈函數 $D$ (Normal Distribution Function - GGX)決定了有多少微小表面的法線剛好朝向半向量 $h$,這決定了高光的「形狀」與「大小」。Blender 使用的是 GGX (Trowbridge-Reitz) 分佈:$$D(h) = \frac{\alpha^2}{\pi ((n \cdot h)^2 (\alpha^2 - 1) + 1)^2}$$$\alpha$:粗糙度參數。注意,在 Blender 中為了讓參數變化的視覺感受更線性,輸入的 Roughness 會做平方處理,也就是 $\alpha = Roughness^2$。
-