如何生成 PBR 贴图:法线、粗糙度、金属度完整指南
引言
基于物理的渲染(PBR)需要一组特定的贴图来准确模拟真实材质。其中,法线贴图(Normal Map)、粗糙度贴图(Roughness Map)和金属度贴图(Metallic Map)是最核心的组成部分。本教程将指导你如何生成这些贴图。
法线贴图生成
法线贴图存储表面法线方向,用于增加几何细节的视觉复杂度。生成方法包括:
从高模烘焙
使用建模软件(如 Blender、Maya、ZBrush)将高精度模型的细节烘焙到低模上。
- 创建低模和高模。
- 在 Blender 中,选择低模,进入 Shading 工作区,添加图像纹理节点,新建一张法线贴图。
- 使用 Cycles 渲染器的 "Bake" 功能,设置 Bake Type 为 "Normal",选择高模作为目标。
- 烘焙得到法线贴图。
- 导入彩色纹理或灰度高度图。
- 调整强度、模糊等参数。
- 导出法线贴图。
- 使用图像编辑软件(如 Photoshop)打开表面照片。
- 转换为灰度,调整对比度,使粗糙区域更亮,光滑区域更暗。
- 可以使用高通滤波或反相来提取粗糙度信息。
- 根据材质属性,使用选择工具或颜色范围选择金属区域。
- 填充白色,非金属区域填充黑色。
- 对于过渡区域,使用羽化或渐变。
- **Blender**:免费开源,支持从高模烘焙法线。
- **Substance Suite**:行业标准,提供 Designer 和 Painter,强大的程序化和手绘能力。
- **CrazyBump / ShaderMap**:专为从照片生成法线、粗糙度等贴图设计。
- **Materialize**:免费工具,可从单张照片生成多种 PBR 贴图。
- **AwesomeBump**:开源替代。
- **颜色空间**:法线贴图应使用线性颜色空间,粗糙度和金属度贴图通常使用线性或灰度,避免 sRGB 校正。
- **贴图尺寸**:根据目标平台和模型复杂度决定,通常为 1024x1024 或 2048x2048。
- **无缝平铺**:如果材质需要平铺,确保生成的贴图无缝。
- **一致性**:确保所有贴图对齐,纹理坐标一致。
从照片生成
使用法线贴图生成工具(如 CrazyBump、ShaderMap、AwesomeBump)从漫反射贴图或高度图生成法线贴图。
程序化生成
在 Substance Designer 等节点式工具中,通过噪声、形状等节点组合生成法线贴图。
粗糙度贴图生成
粗糙度贴图控制表面微观粗糙程度,影响反射的模糊度。白色表示粗糙(漫反射强),黑色表示光滑(镜面反射强)。
从照片提取
程序化生成
在 Substance Designer 中,通过 Grunge Maps、Noise 等节点生成粗糙度变化,结合混合节点控制。
手动绘制
对于特定材质,可直接在纹理绘制软件(如 Substance Painter、Mari)中手动绘制粗糙度。
金属度贴图生成
金属度贴图指定哪些区域是金属(白色)或非金属(黑色),通常只有0或1两种值,但过渡区域可保留灰度。
从照片或纹理创建蒙版
程序化生成
在 Substance Designer 中,使用 ID 贴图或材质混合来定义金属区域。
手动绘制
在 Substance Painter 中,使用填充图层和遮罩来精确控制金属度。
工具推荐
注意事项
总结
生成 PBR 贴图有多种方法,可根据项目需求和资源选择。从高模烘焙质量最高,但耗时;从照片生成快速但精度有限;程序化生成灵活但需要专业知识。建议结合使用多种方法。
常见问题
我只有一张漫反射颜色贴图,可以生成完整 PBR 贴图吗?
可以,但质量有限。使用 Materialize、ShaderMap 等工具可以从漫反射贴图推测法线、粗糙度等,但结果可能不准确,需要手动调整。
法线贴图看起来偏蓝是正常的吗?
是的。法线贴图默认以切线空间存储,其中 Z 轴(蓝色通道)通常朝外,所以整体呈蓝色。
粗糙度和光泽度有什么区别?
粗糙度是光泽度的反相。粗糙度贴图中白色表示粗糙,黑色表示光滑;光泽度贴图则相反。许多引擎使用粗糙度。
金属度贴图必须是纯黑纯白吗?
不一定。对于大多数材质,金属和非金属区域边界清晰,但过渡区域(如锈蚀金属)可以使用灰度值。
如何确保烘焙的法线贴图细节正确?
确保高低模匹配良好,UV 展开合理,烘焙时使用足够的采样和 cage 设置。