Real-Time Physically-Based Materials

image-20230324170200989

在保证速度的时候尽可能提升质量,很多地方不是基于物理了

微表面模型

基于迪士尼标准的 BRDF

在表面、体积上定义着色

F

Fresnel Term

image-20230324171107636

非金属和金属

image-20230324171136670
image-20230324171149862

近似公式

image-20230324171301831

微表面法线分布

image-20230324171428487

法线分布常用函数

image-20230324171604151

半球数据可视化,也就是 Projected Solid Angle

从高斯分布变化而来,各向同性

image-20230324172204915

在 tanθ 代表的切平面(坡度空间,而不是球面空间)上定义了的高斯函数,表示在看向某个像素点时,半程向量是 h 的概率

分母是为了在 ProjectedSolidAngle 上积分为 1

GGX

也叫做 Trowbridge-Reitz ,长尾

image-20230324193615594

可以有光晕的现象

image-20220309193351292

高光的过度比较柔和,GGX 效果比 Beckmann 好

Shadowing Masking Term

自遮挡问题

image-20230324194455581

没有 G 项的话,球的边缘会非常亮,不符合物理的事实

image-20230324194636877

视线或入射光线和法线夹角 90° 会产生剧烈的遮挡现象

image-20230324194831573

能量损失

  • shadowing masking 会导致能量损失

  • 使用白炉测试,可以看到颜色与周围不一致,变暗

  • 白炉测试,各个方向入射光强度一致

  • 微表面粗糙,只考虑一次 bounce 导致光线被挡住

image-20220309193536509

the kulla-conty Approximation

  • 经验性的方法,补全粗糙微表面因为多次弹射造成的能量损失

  • 希望设计一个 BRDF 积分起来能弥补能量损失

  • 计算公式过于复杂,所以预先计算好

  • 物体表面有颜色,颜色意味着能量的吸收

  • 递归考虑所有反射的可能性

image-20230324200259494
image-20230324200359831
  • 使用预计算打表的方式,记录特定视线方向对于特定粗糙度的 BRDF 模型的 Eavg,

  • 使用 Eavg 计算 1 - E(uo), 即能量补偿

image-20230324201411225

颜色意味着能量的吸收,也就是能量损失

菲涅尔项也有能量损失

image-20230324202227133

Eavg 是实际出 BRDF 的能量

image-20230324202434293

微表面模型 + Diffuse 是错误的

image-20230324203046595

最后更新于

这有帮助吗?