PBR物理渲染
什么是PBR?
PBR表示基于物理的渲染,有时称为物理着色,它是一种着色和渲染的方法。准确的说,表现光线如何与材料性质相互作用。PBS和PBR对3D建模的侧重点不同,前者通常指着色,后者表示渲染和光照
通过PBR技术可以实现与真实物理世界材质相似的视觉效果
PBR包含属性
- 灯光属性:直接照明,间接照明,直接高光,间接高光,阴影,环境闭塞
- 表面属性:基础色,法线,高光,粗糙度,金属度
灯光属性
光线类型
| 射入光 | 解释 | 图形 |
|---|---|---|
| 直接照明 | 直接从光源发射阴影物体表面的光 | |
| 镜面光 | 在经过表面反射聚焦在同一方向上进入人眼的光 | |
| 间接照明 | 环境光和直接光经过反弹进入的光 | |
| 漫反射光 | 光被散射并沿着哥哥方向离开表面 |
光与表面的相互作用
| 名称 | 解释 | 图形 |
|---|---|---|
| 直接漫反射 | 从源头到四面八方发散出来的直接高光 | |
| 直接高光 | 直接来自光源并被聚焦反射的光 | |
| 间接漫反射 | 来自环境的光被表面反射 | |
| 间接高光 | 来自环境的光,被表面聚焦反射 |
效果
| 名称 | 解释 | 图形 |
|---|---|---|
| 直接漫反射 | 直接来自光源的光 撞击表面后散落在各个方向 在着色器中使用见到那的数学计算 | |
| 直接高光 | 反射在更集中的方向上 直接镜面反射在计算成本上要比漫反射低得多 | |
| 间接漫反射 | 来自环境中的各个方向上的光 撞击表面后散落在各个方向 因为计算昂贵,所以引擎的全局照明通常是使用离线渲染并被烘培成灯光地图 | |
| 镜面反射 | 来自环境中的各个方向的光 反射在一个更集中的方向上 引擎中使用反射探头,平面反射,SSR或射线追踪计算 |
表面属性
| 名称 | 解释 | 图形 |
|---|---|---|
| 基础色 | 定义表面的漫反射颜色 真实世界的材料不会比20暗,或比240亮 粗糙表面具有更高的色差 超出范围的值不能正确发光 | |
| 法线 | 法线贴图是将xyz三个方向合并为一组颜色,表示 法线的坐标 定义曲面的形状每个像素代表一个矢量 法线贴图会使表面显得凹凸不平 用于添加表面形状的细节,这里三角面是实现不了的 因为他们表示矢量数据,所以法线是无法手工绘制的 | |
| 镜面 | 用于直接和间接镜面照明的叠加 当直视物体表面时,定义反射率 非金属反射表面4%的光 0.5代表4%的反射 1.0代表8%的反射,但大多数物体没必要反射这么多 在折射角下,所有的表面都是100%反射的,内置于引擎的菲涅耳项 | |
| 粗糙度 | 表面在微尺度下的粗糙度 白色是粗糙的 黑色是光滑的 控制反射的焦点 平滑=强烈的反射 粗糙=模糊的漫反射 | |
| 金属度贴图 | 两个不同的着色器通过金属度混合 基本色变成高光色,而不是漫反射颜色 技术漫反射是黑色的 在底色下,镜面范围可达到100% 大多数的金属反光性在60%-100%之间 确保对技术颜色值使用真实世界的测量值,并保证明亮 当金属为1时,镜面输入将被忽略 |
贴图制作
| 基础色贴图 | 不包括任何的照明或阴影 基本颜色纹理看起来应该非常平坦 使用真实世界的度量或获取最佳结果的数据 | |
| 镜面贴图制作注意事项 | 高光贴图应该大于0.5 使用深色的阴影来遮盖不应该反获得裂缝 一个裂缝*0.5就是一个很好的高光贴图 | |
| 粗糙度贴图制作注意点 | 没有技术限制-完全是艺术的选择 艺术家可以使用这张贴图定义表面的特征,并展示 需要考虑被打磨光滑,磨损或老化的表面 | |
| 金属度贴图制作注意点 | 将着色器切换到金属模式 灰度之会很奇怪,最好使用纯白色或黑色 当金属色为白色时,确保使用的金属底色值 没有暗黑金属这回事 所有的金属均为180srgb或更亮 |
金属和非金属的对比
| 金属 | 非金属 |
|---|---|
| 基础颜色=漫反射 镜面反射=0-8% | 基础颜色=0-100%镜面反射 镜面=0% 漫反射总是黑色的 |
总结
- PBR是基于物理渲染的着色模型,PBR着色模型分为材质和灯光两个属性
- 材质部分由,基础色,法线,高光,粗糙度,金属度定义材质的表面属性
- 灯光部分则是:直接照明,间接照明,直接高光,间接高光,阴影,环境光闭塞来定义照明属性的
- 通常我们写材质的时候只需要关注材质部分的属性即可,灯光属性都是引擎定义好直接使用
- PBR渲染模型不但是指PBR材质,还有灯光,两者缺一不可