返回

漫谈 PBR GGX 的 Specular G 几何函数

前端

PBR 漫反射与镜面反射

在计算机图形学中,为了真实地渲染物体表面的外观,通常会将物体的反射光分成漫反射和镜面反射两部分。漫反射是指光线从表面上各个方向均匀反射,而镜面反射是指光线从表面上某个特定的方向反射。

漫反射

漫反射是指光线从物体表面上各个方向均匀反射。漫反射的光强度与表面的粗糙度有关。表面越粗糙,漫反射的光强度就越大。这是因为粗糙的表面上有更多的微表面,这些微表面会将光线向各个方向反射。而光滑的表面上几乎没有微表面,因此大部分光线都会被镜面反射。

漫反射的数学表达式为:

Fr = 1 / π

其中,Fr 是漫反射系数。

镜面反射

镜面反射是指光线从物体表面上某个特定的方向反射。镜面反射的光强度与表面的光泽度有关。表面越光泽,镜面反射的光强度就越大。这是因为光泽的表面上有更多的微表面,这些微表面会将光线向同一个方向反射。而粗糙的表面上几乎没有微表面,因此大部分光线都会被漫反射。

镜面反射的数学表达式为:

Fr = (1 - Fd) * D(h) * G(v, h)

其中,Fr 是镜面反射系数,Fd 是漫反射系数,D(h) 是微表面分布函数,G(v, h) 是几何函数。

GGX 几何函数

GGX 几何函数是用于计算镜面反射光强度的几何函数。GGX 几何函数的表达式为:

G(v, h) = (N * V) / (N * H) * (H * V) / (V * H)

其中,V 是视向量,H 是半向量,N 是表面法向量。

GGX 几何函数的形状与表面的粗糙度有关。表面越粗糙,GGX 几何函数的峰值越低,曲线越宽。这是因为粗糙的表面上有更多的微表面,这些微表面会将光线向各个方向反射,因此镜面反射的光强度较弱。而光滑的表面上几乎没有微表面,因此大部分光线都会被镜面反射,因此镜面反射的光强度较强。

PBR 中的 GGX 几何函数

在 PBR 中,GGX 几何函数通常与微表面分布函数一起使用来计算镜面反射光强度。GGX 几何函数用于计算光线在微表面上的反射方向,而微表面分布函数用于计算微表面的法线分布。

PBR 中的 GGX 几何函数的表达式为:

G(v, h) = (N * V) / (N * H) * (H * V) / (V * H) * (α^2 / (α^2 + (N * H) ^2))

其中,α 是表面粗糙度参数。

α 值越大,表面越粗糙,GGX 几何函数的峰值越低,曲线越宽。α 值越小,表面越光滑,GGX 几何函数的峰值越高,曲线越窄。

总结

PBR GGX Specular G 几何函数是用于模拟表面光泽的函数。它通过考虑微表面的几何分布和法线分布来计算镜面反射光的强度。GGX 几何函数的形状与表面的粗糙度有关。表面越粗糙,GGX 几何函数的峰值越低,曲线越宽。表面越光滑,GGX 几何函数的峰值越高,曲线越窄。PBR 中的 GGX 几何函数通常与微表面分布函数一起使用来计算镜面反射光强度。