什么是PBR
PBR(Physically Based Rendering),意为基于物理的渲染。
可以将其理解为基于某种规则的渲染概念,我们常说的“PBR材质贴图”,并不是指PBR是一种贴图或材质,而更像是一种习惯叫法。
实现原理
BRDF(双向反射分布函数)
BTDF(双向透射分布函数)
BSDF(双向散射分布函数BRDF+BTDF)
BSSRDF(双向子面散射反射分布函数)
如何定义一个PBR流程
1.基于微表面(世界中不存在完全光滑的表面);
2.能量守恒(如入射能量与反射、折射等能量和相同);
3.基于BRDF;
当某个流程同时满足以上条件时,我们称之为PBR流程。
常用的PBR工作流
工作流 | 贴图 | 作用 | 类型 | 通道数 | 优点 | 缺点 |
金属度/粗糙度贴图 | Base Color | 颜色信息 | RGB | 3 | 最小通道数少,性能高 | F0值固定4%(导致如玻璃等材质渲染效果差) |
Roughness | 粗糙度信息 | 灰度 | 1 | |||
Metallic | 金属度信息 | 灰度 | 1 | |||
镜面反射/光泽度贴图 | Diffuse | 颜色信息 | RGB | 3 | F0值可调整 | 最小通道数多,性能差 |
Glossiness | 光泽度信息 | 灰度 | 1 | |||
Specular | 高光信息 | RGB | 3 | |||
共有贴图 | AO | 环境光遮蔽 | 灰度 | 1 | / | / |
Normal | 通过法线信息改变光照效果 | RGB | 3 | |||
Height (Displacement) | 改变模型顶点位置 | 灰度 | 1 | |||
其他 | Opacity (Alpha) | 透明度贴图 | 灰度 | 1 | 用于破损衣物、毛发等 | |
混合贴图 | 将Metallic,Roughness,AO分别写入R,G,B通道,呈现出绿/紫/蓝的颜色 |
F0值:反映了光线在物体表面的折射率。由各不同贴图效果组合计算得出。
这是为游戏开发者初窥PBR概念而总结的基础知识,如有错误烦请指正!感谢!