Material == BRDF
我们研究材质,实际上是在研究光线如何与材质作用,因此在图形学中研究材质,就是在研究BRDF。
Diffuse / Lambertian Material
漫反射材料效果如图
现在计算漫反射材质的BRDF。
现在我们假设射入的光线是均匀的,而由于表面是漫反射,反射光线也是均匀的。这里首先假设材料反射率为 ρ,那么由对称性,入射光和出射光radiance的关系应当为 Lo=ρLi,而如果使用BRDF计算:
Lo(ωo)=∫H2frLi(ωi)cosθidωi=frLi∫H2cosθidωi=πfrLi
因此可以得到
fr=πρ
同时应当注意,这里的反射率 ρ 可以只是一个数,也可以是对应三个光通道的一个向量。
Glossy material
磨砂的材质效果如图
其光线反射的情况则如图所示。因此该种材料虽然有一定的镜面效果(比如古人使用铜镜),但比较模糊
Ideal reflective / refractive material
这种材质一般是玻璃或者水。对于第二幅图,我们可以发现光线在玻璃中会有部分吸收,因此才会显现出玻璃的颜色。
光线在界面会发生理想的反射与折射
Perfect Specular
Perfect Specular Refraction
求出反射光方向的一种方式为:
ωo+ωi=2cosθn=2(ωi⋅n)n⇒ωo=−ωi+2(ωi⋅n)n
我们可以看出想要计算发射光线方向需要计算一个点乘,因此在Blinn-Phong反射模型中我们没有计算反射光线以减小计算量。
还有一种方法就是将空间中的角度拆分成 θ 和 ϕ,然后入射和反射光线的角度关系就由上图中的公式描述。
镜面反射的BRDF比较复杂,需要使用 δ 函数,这里不提及。
Specular Refraction
折射用斯涅尔定理描述即可,同时从公式中我们还可以注意到全反射的存在。
Fresnel Reflection / Term
从图中可以看出,光的反射情况与角度有关,入射角度越大,反射的能量占比就越大。
从图中可以看出,导体和绝缘体的菲涅尔系数不相同,导体在入射角度较小时反射系数远大于绝缘体,因此镜子多用铜、银等金属。
Rs=n1cosθi+n2cosθtn1cosθi−n2cosθt2=n1cosθi+n21−(n2n1sinθi)2n1cosθi−n21−(n2n1sinθi)22Rp=n1cosθt+n2cosθin1cosθt−n2cosθi2=n11−(n2n1sinθi)2+n2cosθin11−(n2n1sinθi)2−n2cosθi2Reff=21(Rs+Rp)
但是这个计算公式过于复杂,因此一般采用Schlick’s approximation来估算菲涅尔项
R(θ)R0=R0+(1−R0)(1−cosθ)5=(n1+n2n1−n2)2
Microfacet Material
上面讨论菲涅尔项是为了这里引入一个真正基于实际情况的表面模型:微表面模型。
提出微表面模型就是因为从远处看物体,其间的起伏细节都看不间,即表面基本是平的,而起伏反映到眼睛中就是表面的粗糙程度。就如同上图从宇宙中拍地球,地面上的各种建筑、植物都看不清,看到的只有一个反射的效果。
Microfacet Theory
在微表面模型中,对于一个粗糙的表面
- 从远处看(Macroscale):平坦且粗糙。看到的是材质或外观
- 从近处看(Microscale):起伏且光滑。看到的是几何
Microfacet BRDF
从微表面模型可以来看不同材质的BRDF:如果微表面的法线分布较为集中,那么体现出的效果就是glossy;如果微表面的法线分布较为分散,那么体现出的效果就是diffuse。
想要写出微表面的BRDF,则需如下考虑
f(i,o)=4(n,i)(n,o)F(i,h)G(i,o,h)D(h)
其中 F(i,h) 为菲涅尔项(Fresnel term),D(h) 表示微表面中有多少表面的法线方向和half vector一致(distribution of normals),G(i,o,h) 考虑了微表面之间对光线相互遮挡的情况,称为几何项(shawing-masking term)。
当光线和发现夹角接近 90° 时,F(i,h) 会较大,而 G(i,o,h) 会较小,从而让边界不会那么亮。
微表面相当强大,能够很好的描述各种材质,现代的图形学基本在使用的就是这种模型。
Isotropic / Anisotropic Materials
材质的各向同性和各向异性和微表面的方向性有关,其反映在BRDF上即:
fr(θi,ϕi;θr,ϕr)=fr(θi,θr,ϕr−ϕi)
图中左侧的球是各向同性的,而右边的球则是各向异性的。
Properties of BRDFs
- 非负性(能量不能是负的)
fr(ωi→ωr)≥0
- 线性性(各个光线的效果能相互叠加,Blinn-Phong模型就利用了此性质)
Lr(p,ωr)=∫H2fr(p,ωi→ωr)Li(p,ωi)cosθidωi
- 可逆性(交换出射和入射放行,BRDF相同)
fr(ωr→ωi)=fr(ωi→ωr)
- 能量守恒
∀ωr∫H2fr(ωi→ωr)cosθidωi≤1
- 各向同性和各向异性
-
如果是各项同性,可以四维降三维
fr(θi,ϕi;θr,ϕr)=fr(θi,θr,ϕr−ϕi)
再考虑可逆性的话
fr(θi,θr,ϕr−ϕi)=fr(θr,θi,ϕi−ϕr)=fr(θ,θr,∣ϕr−ϕi∣)