Skip to content

Lecture 17: Materials and Appearances

BRDF (Bidirectional Reflectance Distribution Function) 双向反射分布函数决定了一个表面如何反射入射光。BRDF定义为:

\[ f_r(p, \omega_i, \omega_o) = \frac{dL_o(p, \omega_o)}{L_i(p, \omega_i) \cdot \cos\theta_i \cdot d\omega_i} \]

这个函数决定了一个物体的材质属性。

假定光是漫反射的,那么BRDF是各向同性的,积分得到:

\[ L_o(w_o) = \pi L_i f_r \]

定义反照率albedo(\(\rho\))为:

\[ f_r = \frac{\rho}{\pi} \]

则:

\[ L_o(w_o) = \rho L_i \]

常见的特殊材质有:镜面反射的材质(如镜子),类似镜面反射但反射光线有一定散射的材质(如抛光金属),同时有反射和折射的材质(如玻璃)

Snell's Law 斯涅尔定律描述了光在两种介质交界面上的折射现象:

\[ \frac{\sin\theta_i}{\sin\theta_t} = \frac{n_t}{n_i} \]

其中,\(\theta_i\)是入射角,\(\theta_t\)是折射角,\(n_i\)\(n_t\)分别是入射介质和折射介质的折射率。 Snell's Window是指在水面下观察时,水面上方的光线会被折射到一个圆锥形的区域内,这个区域的视角约为97.2度。

BSDF(Bidirectional Scattering Distribution Function) = BRDF + BTDF(Bidirectional Transmission Distribution Function),BSDF描述了光在表面上的散射和透射行为。

Fresnel Reflection反映了光在不同的角度入射到介质表面时,反射和折射的比例会发生变化。Fresnel项计算公式:

\[ R_s = \left(\frac{n_1 \cos\theta_i - n_2 \cos\theta_t}{n_1 \cos\theta_i + n_2 \cos\theta_t}\right)^2 \]
\[ R_p = \left(\frac{n_1 \cos\theta_t - n_2 \cos\theta_i}{n_1 \cos\theta_t + n_2 \cos\theta_i}\right)^2 \]

则:

\[ R_eff = (R_s + R_p) / 2 \]

一个估计公式Schlick's Approximation为:

\[ R(\theta) = R_0 + (1 - R_0)(1 - \cos\theta)^5 \]

则:

\[ R_0 = \left(\frac{n_1 - n_2}{n_1 + n_2}\right)^2 \]

Microfacet Material

微表面材质模型假设表面由许多微小的平面组成,从远处上看到的是材质和外观,从近处看的是几何,把微小平面都视为镜面。

对于glossy surface,微表面法线分布比较集中,对于diffuse surface,微表面法线分布比较分散。

\[ f(i, o) = \frac{F(h) G(i, o) D(h)}{4 (n, i)(n, o)} \]

以上公式中,\(F(h)\)是Fresnel项,\(G(i, o)\)是几何遮蔽项(可能微表面之间会有互相遮挡),\(D(h)\)是微表面法线分布函数,分母中的\((n, i)\)\((n, o)\)分别是法线与入射方向和出射方向的点积。整个公式的结果是BRDF。

Isotropic and Anisotropic

Isotropic各向同性,Anisotropic各向异性。

各向同性材质的BRDF在所有方向上都是相同的,而各向异性材质的BRDF则在不同方向上表现出不同的反射特性。各向异性材质通常用于模拟具有方向性纹理或结构的表面,如刷纹金属或织物。

BRDF的属性:非负性(\(f_r(p, \omega_i, \omega_o) \geq 0\)),线性性(\(f_r(p, \omega_i, \omega_o)\)关于入射光线和出射光线是线性的),可逆性(\(f_r(p, \omega_i, \omega_o) = f_r(p, \omega_o, \omega_i)\)),能量守恒(\(\int_{\Omega^+} f_r(p, \omega_i, \omega_o) \cos\theta_i d\omega_i \leq 1\)

如果各向同性,那么\(f_r(\theta_i, \phi_i, \theta_o, \phi_o) = f_r(\theta_i, \theta_o, \phi_o - \phi_i)\);如果各向异性,那么\(f_r(\theta_i, \theta_o, \phi_i - \phi_o) = f_r(\theta_i, \theta_o, \phi_o - \phi_i) = f_r(\theta_i, \theta_o, | \phi_o - \phi_i|)\)

测量BRDFs

Image-Based Measurement

通过拍摄一系列照片来测量BRDF。通常使用一个旋转平台,将样品放置在平台上,并使用一个固定的光源和相机,从不同的角度拍摄样品。然后,通过分析这些照片,可以计算出样品的BRDF。

但是这个方法需要大量的观测数据,如果是各向同性材质,可以减少观测数据。

如MERL BRDF Database,包含100种不同材质的BRDF数据,每种材质的BRDF数据存储在一个90x90x180的三维数组中,分别对应入射角、出射角和方位角。