1.Material材质
图形学中什么是材质?
通过指定物体材质与光线作用的效果来实现
Material == BRDF
[1]Diffuse / Lambertian Material (BRDF)漫反射材质
之前我们再Blinn-Phong光照模型中经验地定义了 i n t e n s i t y / R 2 \rm{intensity}/R^2 intensity/R2 。这里我们进行一些更准确的定义。
漫反射:无论哪个方向的光进来,都会被均匀地反射到四面八方去
现在我们假设一个场景内,入射光线是来自四面八方整个半球,而是均匀的,即每一个方向来的入射radiance都是一样的
这也意味着每一个入射光和出射光都是一样的,每个方向都有,且都是均匀的。( B R D F f r BRDFf_r BRDFfr和入射光线 L i L_i Li都是常数,任 L o = L i L_o=L_i Lo=Li意 )
同时假设这个着色点不发光,也不吸收光,考虑能量守恒定律,也就是进来的光的能量多少,出去也得多少能量
利用渲染方程写出:
[2]Glossy material (BRDF)光泽材质
反射情况介于镜面反射和漫反射之间的材质,我们称为Glossy Material
[3]Ideal reflective / refractive material理想的反射 /折射 材料
能够反射和折射的材质叫理想反射/折射材质
[4]Perfect Specular Reflection完美的镜面反射
完美镜面反射的入射角等于出射角。
BRDF并不容易
[5]镜面折射 Specular Refraction
Snell’s Law折射定律:
不同的材质有不同的折射率 n n n,这样给定入射光和角度就很容易计算出折射角了
也就是说不能再折射率大的地方看到折射率小的地方,例如Snell’s Window / Circle
BRDF中的R表示的是反射(Reflect) 的意思。所以折射也有一个对应的BTDF(Transmit),两者统称BSDF (Scatter) 双向散射分布函数
[6]菲涅尔项 Fresnel Reflection / Term
我们有这么一个例子,一本书靠在墙边,我们从上到下不同视角看它。
我们发现一个问题,我们类似垂直看下去,几乎看不到什么反射。但是几乎平着看过去,反射特别明显。所以有多少光被反射,是和入射光与法线的角度有关系的。用菲涅尔项我们就可以判定有多少能量被反射,有多少能量被折射
反射率取决于入射角(和光的偏振)
下图为对某个折射率为1.5的绝缘体的菲涅尔项数据。正常情况为实线,角度与反射的情况(虚线为光的极化性质,光只沿着S或者P的方向振动的时候,一般不考虑)
举个例子,在生活中,比如坐在大巴车上,我们看自己旁边的窗户,比较容易看到外面去,但是看着前后几排的窗户,可能只有反射(只能看到反射的东西,有点像镜子)
对于导体来说又是另一种菲涅尔项。所以古代用铜镜和银镜,比如你垂直看过去它的反射也是很多的,其实也是因为它们的反射率一直都挺高的(导体的折射率是负数)
菲涅耳项的计算公式如下:
我们需要计算入射角为 时的反射率,但是菲涅耳项不好算
可以采用 Schlick’s Approximation 简化近似得到
R
(
θ
)
=
R
0
+
(
1
−
R
0
)
(
1
−
cos
θ
)
5
R
0
=
(
η
i
−
η
t
η
i
+
η
t
)
2
R(\theta) = R_0+(1-R_0)(1-\cos\theta)^5 \\ R_0 = \left(\frac{\eta_i-\eta_t}{\eta_i+\eta_t}\right)^2
R(θ)=R0+(1−R0)(1−cosθ)5R0=(ηi+ηtηi−ηt)2
其中
R
0
R_0
R0为在 0 度时的反射率, 也叫基准反射率 (
n
1
,
n
2
n_1,n_2
n1,n2与材质相关)
[7]Microfacet Material微表面材质
上图为一张空间站实拍照片。可以看到,地球的陆地部分从遥远的太空看过去并不是实际上的那样有凹凸不平的地形细节,而更像是一块平面,有些高光。但又不完全光滑,带一些粗糙。
微表面模型/材质就是基于上面的现象而言的,只要当我的观察距离足够远,很多物体是看不到的,而是重点描述光的作用。
- Macroscale(宏观):平的、粗糙的
- Microscale(微尺度):凹凸不平
也就是是从远处看看到的是材质\外观,从近处看是几何,并且每一个表面的微元都是完完全全镜面反射的物体,都有各自的朝向和法线(从近处看到的是几何,下图凹凸不平的材质)
微表面材质的BRDF
我们可以用微表面的法线分布来区分“光滑”和“粗糙”。法线向量相对集中即为光滑镜面反射,否则即为粗糙漫反射
也就是说我们可以将这个物体表面的粗糙程度用微表面的法线分布来表示,法线集中—>glossy,法线分布开—>diffus
定义微表面上的 BRDF:
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,o)=4(n,i)(n,o)F(i,h)G(i,o,h)D(h)
- f ( i , h ) f(i,h) f(i,h) 为菲涅耳项,表示入射和半程向量的关系
- D ( h ) D(h) D(h)法线分布,考虑查询半程向量是否在法线分布上
- G ( i , o , h ) G(i,o,h) G(i,o,h)为几何项,考虑可能发生互相遮挡,有些微表面会失去它的作用。在几乎和表面平行的光线上容易发生互相遮挡的现象,我们把这种光线角度称为Grazing Angle,G这一项就是为了修正它,让它不要过亮
[8]Isotropic / Anisotropic Materials (BRDFs)各向异性/各向同性材质
下图是电梯间内部的图,我们发现高光是条状的,这和我们之前椭圆状的高光的认识不
这也是由于材质造成的,这是被磨过的金属造成的高光
于是我们引出了接下来区分材质的方法,各向同性与各向异性材质
- Isotropic各向同性,微表面并不存在一定的方向性(法线分布均匀)
- Anisotropic各向异性,微表面存在方向性
如果这个BRDF在方位角上旋转(剪刀手旋转)后的BRDF发生变化(同一个位置,同一个入射角度,不同的入射方向,得到不同的BRDF),我们就叫它是各向异性材质
f
r
(
θ
i
,
Φ
i
;
θ
r
,
Φ
r
)
≠
f
r
(
θ
i
,
Φ
i
;
θ
r
,
Φ
r
−
Φ
i
)
f_r(\theta_i,\Phi_i;\theta_r,\Phi_r) \neq f_r(\theta_i,\Phi_i;\theta_r,\Phi_r - \Phi_i)
fr(θi,Φi;θr,Φr)=fr(θi,Φi;θr,Φr−Φi)
所以各向同性:
f
r
(
θ
i
,
Φ
i
;
θ
r
,
Φ
r
)
=
f
r
(
θ
i
,
Φ
i
;
θ
r
,
Φ
r
−
Φ
i
)
f_r(\theta_i,\Phi_i;\theta_r,\Phi_r) = f_r(\theta_i,\Phi_i;\theta_r,\Phi_r - \Phi_i)
fr(θi,Φi;θr,Φr)=fr(θi,Φi;θr,Φr−Φi)
下面看一些生活中的例子
[9]BRDF性质总结
- 函数非负
f r ( ω i → ω r ) ≥ 0 f_r(\omega_i \rightarrow \omega_r) \ge 0 fr(ωi→ωr)≥0
- 线性(可以把BRDF拆成很多块,分别进行光线传播,最后的结果加起来也是一样的
L r ( p , ω r ) = ∫ H 2 f r ( p , ω i → ω r ) L i ( p , ω i ) cos θ i d ω i L_{r}\left(\mathrm{p}, \omega_{r}\right)=\int_{H^{2}} f_{r}\left(\mathrm{p}, \omega_{i} \rightarrow \omega_{r}\right) L_{i}\left(\mathrm{p}, \omega_{i}\right) \cos \theta_{i} \mathrm{~d} \omega_{i} Lr(p,ωr)=∫H2fr(p,ωi→ωr)Li(p,ωi)cosθi dωi
- 可逆性(交换入射方向和出射方向的角色,得到的BRDF一定是一样的)
f r ( ω i → ω r ) = f r ( ω r → ω i ) f_r(\omega_i \rightarrow \omega_r) = f_r(\omega_r \rightarrow \omega_i) fr(ωi→ωr)=fr(ωr→ωi)
- 能量守恒(BRDF不可能使能量变多)
∀ ω r ∫ H 2 f r ( ω i → ω r ) cos θ i d ω i ≤ 1 \forall \omega_{r} \int_{H^{2}} f_{r}\left(\omega_{i} \rightarrow \omega_{r}\right) \cos \theta_{i} \mathrm{~d} \omega_{i} \leq 1 ∀ωr∫H2fr(ωi→ωr)cosθi dωi≤1
- 对于各项同性材质:可以忽略 BRDF 入射角
2.BRDF 测量
[1]基于图像的 BRDF 测量
测量BRDF:GonioreReTectometer
一般的做法:
foreach outgoing direction wo
move light to illuminate surface with a thin beam from wo
for each incoming direction wi
move sensor to be at direction wi from surface
measure incident radiance
效率提升方式:
- 所以各向同性曲面性质将维数从4D 降低到3D
- 可以利用光路可逆性减少一半测量量