基于物理的材质
微表面模型BRDF
微表面模型理论:宏观上看,表面是平整的,微观上,表面不是平整的,会有各种各样的凸起,如下图所示。
我们的微表面模型有三个项:
F表示菲涅尔项:用来描述光在不同折射率的介质之间的行为,简单来讲,一个光线打到物体某一个点,有多少能量被反射,有多少能量被折射。描述入射角度和反射比例的关系。
G表示shadowing-masking: 描述i方向的入射的光线,在反射到o方向时候,有多少能量被微表面遮挡,用来修正D(h),因为不是所有法线h的方向都能够反射出去,可能会被微表面遮挡
D项:表示微表面的法线分布
菲涅尔项:
如下图所示:反射和光线的入射角度相关。当入射方向和法线几乎垂直(grazing angle)的情况下,反射是最多的。
绝缘体的菲涅尔项
导体的菲涅尔项
菲涅尔项的简单估计
和基础反射R0相关的R(θ)
微表面的法线分布
如果法线分布比较集中,就类似于金属,当法线分布比较分散的时候,就类似于漫反射的物体
如何描述NDF
如何描述NDF,主要2种模型:
Beckmann
GGX
NDF法线分布Beckmann
α : 可以代表表面的粗糙程度,α越小,越像镜面
θh: 表示半程向量和发现之间的一个角度
NDF法线分布GGX
GGX不会很快衰减到0,但是Beckmann会很快衰减到0。
GGX的高光更柔和,过度更顺滑
GGX的拓展–GTR模型
Shadowing-Masking Term
描述微表面之间互相遮挡的关系
如果没有G项目,下图的边缘会非常亮,就是白色。
从光滑到粗糙,越粗糙,越变暗,这种情况是不对的,因为能量是有损失的。微表面模型的自遮挡其实被遮挡的光线实际上会发生二次弹射,但是我们没有考虑。
微表面越粗糙,越容易发生自遮挡
如何补充丢失的能量,用经验模型补全多次反射丢失的能量。
Kulla-Conty
预计算
截图和公式来源闫令琪老师games202课程
感谢闫令琪老师为我们带来这么精彩的图形学课程
https://www.bilibili.com/video/BV1YK4y1T7yY?p=10