上图引用自LearnOpenGL官网https://learnopengl-cn.github.io/07%20PBR/01%20Theory/#pbr
pbr两大工作流
pbr工作流程中, pbr分成了两个派系。
金属/粗糙度工作流
金属/粗糙度工作流采用三张图来表示PBR所需的主要参数:
- baseColor(Albedo), rgb贴图,用于表示非导体的反射率颜色或金属的F0,它不应该含义任何光照信息。
- metallic, 灰度贴图,可以视为一个遮罩,表示金属成分的占比:1表示100%的存金属,0表示100%的非金属。
- roughness, 灰度贴图,数值越大越粗糙。
镜面反射/光泽度工作流
- Diffuse,RGB贴图,和albedo类似。
- Specular, RGB贴图,定义金属和非金属的F0。
- Glossiness, 灰度贴图,数值越大越光滑。
两种工作流对比
1.M/R工作流:非金属的F0值固定,无法调整。其为主流的工作流,用途广泛。
2.S/G工作流: 可以对金属,非金属的F0值自由调整,但这也非常容易做出违反能量守恒定律的材质,其需要两张RGB贴图,开销更大。
pbr贴图分类(以金属/粗糙度来介绍)
pbr贴图大致包含以下类型:
1.反射率贴图(Albedo), 其为每一个金属的纹理像素指定了表面的颜色或基础发射率。和diffuse贴图的不同点在于,albedo贴图不应该包含局部阴影信息和光照信息,而只包含纯颜色信息(或折射吸收系数)。
2.法线贴图(Normal), 存储纹理的表面凹凸信息,用于增加模型的细节。
3.金属度贴图(Metallic), 其本身是一张黑白图,越白的地方,金属度越强烈,越黑的地方金属度越低。
4.粗糙度贴图(Roughness), 其为每个纹理像素指定了其粗糙度。一个较粗糙的表面会得到更宽阔更模糊的镜面反射。而一个比较光滑的表面则会得到集中而清晰的镜面反射。
5.环境光遮蔽贴图(AO, 全拼Ambient Occlusion), 通常是一直灰白色贴图,其主要目的是为了改善阴影。其为表面和周围潜在的几何图形指定了一个额外的阴影因子。比如如果我们有个砖块表面,反射率贴图上的砖块裂缝部分应该没有任何信息。然而AO贴图则会把那些光线较难逃逸出来的暗色边缘指定出来。
pbr优势
基于Pbr渲染的最大优势是物理可信的,不管环境和灯光如何。美术制作的Pbr素材在不同引擎中都能共享。
pbr两种工作流引用文档https://blog.csdn.net/u010281174/article/details/108964117
https://weibo.com/ttarticle/p/show?id=2309404662594287043313