材质外观

什么是材质

  1. Material == BRDF
  2. 漫反射材质: 假设不主动发光,也不吸收光,则入射光的irradiance等于出射光的irradiance,进一步可得入射光的radiance等于出射光的radiance,带入渲染方程可得BRDF为 fr = 1/PI,这是完全不吸收光的情况,如果定义某个颜色单通道的反射率为0-1之间的p,则fr = p/PI,对rgb多通道也同理
  3. glossy材质: 磨砂,镜面反射了,但没完全镜面
  4. glass材质: 玻璃或者水
  5. 反射定律: 出射角等于入射角,wo + wi = 2cos()*n,n为法线单位向量,wi为入射向量,wo为出射向量,由于wi * n = ||wii|| * ||n|| * cos(),所以wo = -wi + 2(wi*n)*n
  6. 从顶部俯瞰反射模型,可以看出入射方向与反射方向在该平面是平行但相反的,方位角 fo = (fi + pi)mod2PI
  7. cautics: 水面被阳光照射下,水底的光路
  8. 折射定律(Snell's Law): 方位角朝向和反射一致,折射率n,则ni * sin(i) = nt * sin(t),根据cos(t) = Math.sqrt(1-sin(t)^2, 2),展开可得cos(t) = Math.sqrt(1-(ni/nt)^2*(1-cos(i)^2)),该表达式在根号内部为负数的情况下无意义,即ni/nt > 1,即,ni > nt,入射光的介质折射率要大于反射光介质折射率,也就是说满足这种情况的条件下,可能产生不折射的情况,即全反射,也是光纤的原理
  9. 人在水底看天空,只能看到一个锥形的区域,其他区域都是黑色,也是因为折射,锥形角度97.2度
  10. bsdf = brdf + btdf
  11. 菲涅尔项: 反射依赖于入射角的大小
    1. 绝缘体(1.5折射率): 如果入射角为90度,则所有能量都被反射,入射角越大,反射能量越多
    2. 导体: 即使垂直看过去,也是反射很多
  12. 极化现象: 跟光线的波动性有关,不同颜色的光频率不同,不过渲染器不考虑这个
  13. 菲涅尔项的现实例子: 坐公交,如果对着自己旁边的窗户往外看,能看到外面,但对着前面几排的窗户看,只能看到反射镜像
  14. 微表面材质(microfacet material): 物体表面,从近处看是凹凸不平的镜面的(几何),但从远处看是平的粗糙的(材质)
  15. 微表面材质的BRDF
    1. glossy: 法线的分布基本都是朝上
    2. diffuse: 法线的分布各个方向都有
    3. 可以用微表面的发现分布表示粗糙程度,法线分布更集中,则是glossy,更分散则是diffuse
    4. brdf: f(i, o) = (F(i, h) * G(i, o, h) * D(h)) / (4 * (n, i)(n, o)),其中F表示菲涅尔项,G(shadow masking)表示被其他表面遮挡的程度,D表示法线与半程向量重合的分布
    5. 如果入射方向比较平,会导致其他表面被遮挡的程度较大,这种入射角度也叫grazing angle
    6. 无论是入射方向或者是观察方向比较接近grazing angle,就会产生面与面的遮挡,G就是用来修正这个的,如果没有G,则该点会非常亮,有了G可以一定程度修正
    7. 微表面模型示例: 机动车皮坐垫,木椅子,玻璃板,金属涂层

区分材质的方式

  1. 各向同性材质: 法线在各个方向均匀分布,如普通金属球或者磨砂球
  2. 各向异性材质: 法线分布不均匀,如拉丝钢板拉伸高光,平底锅底辐射状高光,尼龙布料,天鹅绒表面被拨到一边
  3. 如果入射和出射方向,在方位角旋转之后,材质的BRDF不变,则是各向同性材质,否则则是各向异性材质

BRDF性质

  1. 非负数: fr(wi -> wr) >= 0
  2. 线性:
  3. 可逆性: fr(wi -> wr) = fr(wr -> wi)
  4. 能量守恒
  5. 各向同性材质的BRDF可以从4维降到3维: fr(i, fi(i), o, fi(o)) = fr(i, o, |fi(i) - fi(o)|),只跟方向角的差值有关,fi为方向角

BRDF测量

  1. 将样本放在正中间,旋转光源,用相机记录
  2. 利用各向同性材质的特性,可以减少光源旋转覆盖的点,不用覆盖完整球面,从4维降到3维
  3. 利用BRDF可逆性,再砍掉一半的测量点
  4. 测量之后数据存储问题,MERL BRDF Database,90*90*180次测量