PBR的一些小总结, 为了保持篇幅的简短,忽略了辐射度量学的基本知识。
参考链接
1 PBR模型主要的三个特征
- 能量守恒
- 微平面模型
- 物理模型
2 物体表面颜色
可以看作 环境光 ambient + 漫反射 diffuse + 镜面反射 specular
- 镜面反射是光线在物体表面反射出去的光线
- 漫反射是光线进入物体内部,在内部散射后反射出物体表面的光线
- 环境光就是考虑没有直接射到物体表面
2.1 终极渲染模型
$L(p, w_0) = \int f_r(p, w_0, w_i) L(p, w_i) n * w_i dw_i$
符号含义:
- $f_r$ 为BRDF函数, 根据入射角度/出射角度/平面法线/粗糙程度决定每条光线的最终贡献率
- $L(p, w_i)$为入射辐射率
- $L(p, w_0)$为出射辐射率
- $n$为法向量
- $w_i$为光线方向
note:
- $L(p, w_i) n * w_i$即光线以与法线一定夹角射到平面上辐射率会减小
- 不同的光源(点光源/线光源/面光源…)的时候还要考虑光线在传播过程中随着路径的长度的衰减
总结:
即 使用半球平面内所有方向的光线贡献求和作为出射辐射率
2.2 BRDF
$fr = kd f_l + ks f_c$
$kd$为漫反射比例
- $ks$为镜面反射比例
- $f_{lambert}=\frac{C}{PI}$ C为基础反射率
- $f_{cook-torrance}=\frac{DFG}{4 (nw_i) (nw_0)}$
- $D$根据表面粗糙度估计给定微平面的法向量与中间向量(光线角度与观察角度的中间向量)一致的比例
- $G$代表微平面相互遮蔽的比例
- $F$代表根据观察方向而导致反射比例$ks$与折射比例$kd$的变化,一般来说垂直观察的时候折射最强反射最弱,水平观察的时候反射最强折射最弱
给定基础反射率$F_0$与观察角度$w_0$则可以通过$F$计算实际反射比例$ks$且$kd = 1 - ks$
2.3 金属与非金属
金属材质较为特殊:
- 镜面反射很强
- 没有漫反射
而非金属材质:
- 漫反射很强
- 镜面反射很弱
一般材质介于二者之间
2.4 基础反射率F0
- 金属的基础反射率很高且三个通道的值一般不同
- 非金属的基础反射率很低(默认为0.04)且三个通道的值一般相同
- 而一般材质介于二者之间使用一个metallic进行插值
2.5 如何用统一的公式描述三种材质的基础反射率
给定基础反射率albedo以及金属度metallic进行线性插值
$F0 = (0.04, albedo, metallic)$
$ks = F(F0)$
$kd = (1 - metallic)(1 - ks)$ 因为金属没有漫反射
3 如何描述PBR材质
1 | uniform vec3 albedo; // 基础反射率F0 |