以下为个人学习笔记整理,涉及坐标内容统一用右手坐标系,课程官网

# Materials and Appearances

# 什么是材质(materials)

materials == BRDF

# 漫反射(Diffuse/Lambertian)材质

光线照射在某点后,均匀的分散到半球的各个方向。

image-20210201101231275

由于能量守恒,假设物体本身不吸收任何光线,那么入射光的 「Irradiance」 将会等于出射光的 「Irradiance」。

image-20210201174622150

Lo(wo)=H2frLi(wi)cosθidwiL_o(w_o) = \int_{H^2} f_r L_i(w_i) \cos \theta_i dw_i

假设入射光Li是常数:Lo(wo)=frLi(wi)H2cosθidwi\text{假设入射光} L_i \text{是常数:} L_o(w_o) = f_rL_i (w_i) \int_{H^2} \cos\theta_idw_i

由于球的立体度为 4π4 \pi ,半球的立体度则为 2π2 \pi。而半球的立体度可以表示为(参考十六课):

Ωsinθdω=02π0π2sinθdω=2π\int_{\Omega} \sin \theta d\omega = \int_0^{2\pi} \int_0^{\frac{\pi}{2}}\sin \theta d\omega = 2 \pi

此处忽略计算步骤:H2cosθidwi=π\text{此处忽略计算步骤:} \quad \int_{H^2} \cos\theta_idw_i = \pi

Lo(wo)=frLi(wi)πL_o(w_o) = f_rL_i (w_i) \pi

由于入射Li等于出射Lo,所以漫反射的BRDF:fr=1π\text{由于入射} L_i \text{等于出射} L_o \text{,所以漫反射的BRDF:} \quad f_r = \frac{1}{\pi}

# 光滑(Glossy)的材质

效果看上去有点像金属。

image-20210201105829086

一条入射光,能够在某片区域,反射出多个光线,称之为 「Glossy」。

image-20210201105902123

# 理想反射 / 折射(Ideal reflective/refractive)材质

效果上来说,有点像玻璃和水。

image-20210201110752169

光线通过物体进行反射和折射。

image-20210201110451953

# 反射(Reflection)

入射角等于出射角。

image-20210201110932581

# 计算反射方向:
  • 通过平行四边形法则来计算。

image-20210201111135009

wi+wo=2cosθn=2(win)nw_i + w_o = 2 \cos \theta \vec n = 2 (w_i \cdot \vec n) \vec n

wo=wi+2(win)nw_o = -w_i+ 2(w_i\cdot \vec n) \vec n

  • 通过立体角的性质,假设从 z 轴向 z 轴负方向观察光线。

可以理解为入射角和反射角在 x,yx,y 平面上旋转 180180^{\circ}

image-20210201111707649

ϕo=(ϕi+π)mod2π\phi_o = (\phi_i + \pi) mod 2 \pi

# difference between phong and blinn phong

「phong」模型考虑光线是用观察方向和反射方向做运算,在某些特定的情况下,这个角度会大于 9090^{\circ} ,而被抛弃。

image-20210201114227159

「blinn phong」模型则是直接用光源和观察方向的中间向量和法线之间的夹角来计算,该值不会被抛弃,而且计算效率也更高。

image-20210201114353495

# 折射(Refraction)

image-20210201115307355

ηisinθi=ηtsinθt\eta_i \sin \theta_i = \eta_t \sin \theta_t

image-20210201140609854

转换为余弦:cosθt=(1sin2θt)=1(ηiηt)2sin2θi=1(ηiηt)2(1cos2θi)\text{转换为余弦:} \cos \theta_t = \sqrt{(1-\sin^2 \theta_t)} = \sqrt{1 - (\frac{\eta_i}{\eta_t})^2 \sin^2 \theta_i} = \sqrt{1 - (\frac{\eta_i}{\eta_t})^2 (1 - \cos^2 \theta_i)}

发生折射的条件:ηiηt>1\text{发生折射的条件:}\frac{\eta_i}{\eta_t} > 1

折射和反射效果类似。

image-20210201115527610

φt=φi±π\varphi_t = \varphi_i ± \pi

# Snell Window/Circle

在水底向上看的时候,只能看见较小的一块锥型区域。

image-20210201141903830

# Fresnel Reflection / Term

反射率会随着入射角的变化而变化

image-20210201142658704

# Fresenel Term(Dielectric, η=1.5\eta = 1.5

入射光线越是平行物体表面,反射率越大。越是垂直于表面,折射率越大。

image-20210201142842883

# Fresnel Term(Conductor)

导体(金属)在入射光和法线角度偏小的情况下依旧有着不错的反射能力。

image-20210201143545593

# Fresnel Term——Formulae

对每个极化单独计算反射率,最终求平均。

Rs=n1cosθin2cosθtn1cosθi+n2cosθt2=n1cosθin21(n1n2sinθi)2n1cosθi+n21(n1n2sinθi)22R_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 = \left| \frac {n_1\cos \theta_i - n_2 \sqrt{1-(\frac{n_1}{n_2} \sin \theta_i)^2}} {n_1\cos \theta_i + n_2 \sqrt{1-(\frac{n_1}{n_2} \sin \theta_i)^2}} \right|^2

Rp=n1cosθtn2cosθin1cosθt+n2cosθi2=n11(n1n2sinθi)2n2cosθin11(n1n2sinθi)2+n2cosθi2R_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 = \left| \frac {n_1\sqrt{1-(\frac{n_1}{n_2} \sin \theta_i)^2} - n_2 \cos \theta_i} {n_1\sqrt{1-(\frac{n_1}{n_2} \sin \theta_i)^2} + n_2 \cos \theta_i} \right|^2

Reff=12(Rs+Rp)R_{eff} = \frac{1}{2}(R_s + R_p)

简化版计算方法(近似值)

R(θ)=R0+(1R0)(1cosθ)5R(\theta) = R_0 + (1 - R_0)(1 - \cos \theta)^5

R0=(n1n2n1+n2)2R_0 = \left(\frac{n_1 - n_2}{n_1 + n_2} \right)^2

# 微表面(Microfacet)材质

当观察点距离物体足够远的时候,很多物体表面的细节,无法观测到,只能看到光线对物体表面的一个总体作用。

理解成:光滑的物体虽然看上去表面光滑,但是用放大镜观察依旧能看到坑坑洼洼的地方,但最终的光照效果确实非常的光滑。

# Microfacet Theory

对于粗糙的物体表面

  • 远处看:看到的是材质和外观。
  • 近处看:看到的是几何。

image-20210201151737332

# Microfacet BRDF

微表面的法线分布:

  • Concentrated < == > glossy

image-20210201163305776

  • Spread < == > diffuse

image-20210201163213329

# 如何计算微表面的材质

image-20210201164308639

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

各个函数含义:

  • F(i,h)F(i,h):Fresnel term,计算能够被反射的能量。
  • G(i,o,h)G(i,o,h):shadowing-masking term,微表面之间是否存在互相遮挡。一般用于降低物体表面轮廓的亮度。
  • D(h)D(h):distribution of normals,法线分布,表示任何方向的法线分布值。得到法线就能够判断光线是否会经过反射,进入人眼。

# Isotropic / Anisotropic Materials(BRDFs)

同向或异向的判断条件:沿着 z 轴方向旋转,各个立体角的「BRDF」是否相同(一个球体绕着 z 轴旋转,最终的观察结果是否不同)。

image-20210201170225045

image-20210201170352116

# Anisotropic Materials

在方位角旋转后,得到的 BRDF 不一致,那么就称之为「Anisotropic Materials」

fr(θi,ϕi;θr,ϕr)fr(θi,ϕr;θr,ϕrϕi)f_r(\theta_i, \phi_i; \theta_r, \phi_r) ≠ f_r(\theta_i, \phi_r; \theta_r, \phi_r - \phi_i)

# BRDF 特性

  • 非负:fr(wiwr)0f_r(w_i \to w_r) ≥ 0
  • 线性性质:

Lr(p,wr)=H2fr(p,wiwr)Li(p,wi)cosθidwiL_r(p, w_r) = \int_{H^2} f_r(p,w_i \to w_r)L_i(p,w_i) \cos \theta_i dw_i

image-20210201171835282

  • 可逆性:fr(wrwi)=fr(wiwr)f_r(w_r \to w_i) = f_r(w_i \to w_r)

image-20210201171927569

  • 能量守恒,不会变多。

wrH2fr(wiwr)cosθidwi1\forall w_r \int_{H^2} f_r(w_i \to w_r) \cos \theta_i dw_i ≤ 1

  • 各向同性 vs 各向异性
    • 各向同性:fr(θi,ϕi;θr,ϕr)=fr(θi,ϕr;θr,ϕrϕi)f_r(\theta_i, \phi_i; \theta_r, \phi_r) = f_r(\theta_i, \phi_r; \theta_r, |\phi_r - \phi_i|)
    • 所有的 BRDF 都是可逆的。

image-20210201173106066

# Measuring BRDFs

image-20210201173421783

# gonioreflectometer

通过得到物体在不同位置光源和摄像机下的成像,计算出物体的 BRDF。

image-20210201173748469

# 性能优化

  • 假设材质是各向同性:较少一个维度的计算。
  • 所有的 BRDF 都是可逆的,减少一半的计算量。
  • ...

# 关键字

  • Polarization(极化):波在多个方向上振荡的能力。
  • MERL BRDF Database:各类 BRDF 的数据库。