1、判断一个光照模型 是PBR的3个条件
- 基于微平面(Microfacet)的表面模型
- 能量守恒
- 应用基于物理的BRDF
名称 | 作用 | 关键概念 |
---|---|---|
微平面模型 | 调整高光范围和亮度 | 半程向量;描述表面与半程向量趋近程度/百分比 |
能量守恒 | 反射部分 + 折射部分 | |
BRDF |
2、反射率方程

3、DFG:
D 法线分布函数: 估算在受到表面粗糙度的影响下,朝向方向与半程向量一致的微平面的数量。这是用来估算微平面的主要函数。
F 菲涅尔方程: 菲涅尔方程描述的是在不同的表面角下表面所反射的光线所占的比率。
G 几何函数: 描述了微平面自成阴影的属性。当一个平面相对比较粗糙的时候,平面表面上的微平面有可能挡住其他的微平面从而减少表面所反射的光线。
3.1、 法线分布函数
参数名 | 含义 |
---|---|
α | 表面粗糙度 |
n | 表面法线 |
h | 半程向量 |
3.2、 几何函数
参数名 | 含义 |
---|---|
α | 表面粗糙度 |
n | 表面法线 |
v | 观察(视线)方向 |
l | 光线方向 |
3.3、 菲涅尔方程
参数名 | 含义 |
---|---|
F0 | 基础反射率,由折射指数或者IOR计算得出 |
h | 半程向量 |
v | 观察(视线)方向 |
F0:
基础反射率数据库:
或者使用以下方式计算:
javascript
vec3 F0 = vec3(0.04);
F0 = mix(F0, surfaceColor.rgb, metalness);
4、Cook-Torrance 反射率方程
