如何为3D模型添加PBR贴图(Blender、Unity、Unreal与Web)

TL;DR
- 要为3D模型添加PBR贴图,需先对网格进行UV展开,然后加载每张贴图,将其连接到着色器的对应输入端,并检查色彩空间设置。
- 基础色为色彩数据;法线、粗糙度、金属度、AO和高度贴图均为数据贴图。Unity使用的是光滑度,即粗糙度的反值。
- Blender、Unity、Unreal Engine和glTF遵循相同的金属度-粗糙度逻辑。Tripo AI贴图功能可生成一套完整的PBR贴图,供你检查和调整。
简介:什么是PBR贴图?
你可能花了大量时间构建了一个精细的模型,但渲染出来却像廉价塑料。问题往往不在于几何形状,而在于材质响应——即表面如何吸收、散射和反射光线。
PBR(基于物理的渲染)将这些表面属性分布在多张贴图上。游戏资产、影视制作、产品可视化和实时Web内容都采用这种方式,因为当光照变化时,材质能保持一致的响应效果。本指南将介绍各类贴图、UV准备工作,以及在Blender、Unity、Unreal Engine和Web工作流中的配置过程。
PBR贴图类型
PBR材质是一组共享同一UV布局的图像叠加而成的。每张图像负责回答不同的光照问题,因此将文件连接到错误的输入端,会导致材质在某个视角下看似正常,但一旦光线移动便会出现问题。

图1. 核心PBR贴图类型及各贴图所控制的属性。
| 贴图 | 控制内容 | 实用提示 |
|---|---|---|
| 基础色 / 反照率 | 可见的表面颜色,不含烘焙阴影或高光。 | 视为色彩数据,使用sRGB。 |
| 法线 | 通过改变着色法线来表现细小的凹凸和纹路。 | 使用法线贴图节点和非色彩数据。 |
| 粗糙度 | 反射锐利程度:0为光滑;1为哑光。 | 不要与Unity的光滑度混淆。 |
| 金属度 | 像素表现为金属还是电介质。 | 对于干净的材质,尽量使用纯黑或纯白。 |
| 环境光遮蔽 | 折痕和狭小缝隙处的柔和接触阴影。 | 保持微妙效果,避免重复阴影。 |
| 高度 / 置换 | 可选的几何或视差表面偏移。 | 真实置换需要足够的网格细分。 |
如需现成的练习资源,Poly Haven和ambientCG提供免费的PBR贴图包。建议下载完整套装,而非混用来自不相关材质的贴图;一致的比例和采集条件至关重要。
第一步 - 对模型进行UV展开
PBR贴图是2D图像,因此网格需要一张2D路线图来指示每个像素的对应位置。在Blender中,应用对象的缩放比例,进入编辑模式,选择所有面,按U键,选择"智能UV投影"可快速得到结果;若需要精确控制接缝,则选择"展开"。

图2. 应用PBR贴图前的UV工作流程实践。
在贴图之前,先检查UV编辑器。除非设计上有意镜像细节,否则UV岛不应相互重叠。在各岛之间留出间距,并保持相似部件之间的纹素密度一致。现在就检查拉伸问题——即使材质再精良,也会在扭曲的UV上呈现错误效果。对于概念性工作,Tripo AI贴图可以为上传或生成的模型生成PBR材质。在将资产用于生产之前,请检查其接缝和表面对齐情况。
第二步 - 在Blender中应用PBR贴图
Blender的Principled BSDF着色器可直接接受标准的金属度-粗糙度贴图集。为网格指定材质后,按以下方式连接贴图:
- 通过编辑器类型菜单打开着色器编辑器。在某些键位映射中,Shift+F3可打开节点编辑器,但通过菜单操作是跨自定义快捷键最稳妥的方式。
- 保留默认的Principled BSDF和材质输出节点。为每张贴图添加一个图像纹理节点,并加载对应的文件。
- 将基础色连接到"基础色",粗糙度连接到"粗糙度",金属度连接到"金属度"。法线纹理需先经过法线贴图节点,再连接到"法线"输入端。
- 将基础色设置为 sRGB。将法线、粗糙度、金属度、AO和高度贴图设置为 非色彩,以防止Blender对数值数据应用显示色彩变换。
- 在材质预览模式下进行预览,然后在具有代表性的光照条件下按F12渲染。只有在确认所有贴图均已正确连接后,再调整映射比例和法线强度。


图3. 用于 PBR 贴图的简化 Blender 节点流程。


Blender 的颜色管理文档明确将法线贴图和置换贴图图像视为非颜色数据。Blender 的 Principled BSDF 节点上没有专用的 AO 输入;如果目标需要可见的烘焙 AO,可将其与基础颜色进行微妙的叠合,或将其作为独立贴图保留以供导出。避免进行大幅度的相乘运算,因为这可能会在真实光照下使折痕产生双重变暗的效果。
步骤 3 - 在 Unity 中应用 PBR 纹理
对于通用渲染管线(URP)项目,请将文件导入 Assets,创建一个材质球,并选择 Universal Render Pipeline/Lit。将反照率图像指定给 Base Map,将法线贴图添加到 Normal Map,并将 AO 放置在 Occlusion 插槽中。Unity 可能会提示修复法线纹理类型;如果导入设置仍标记为普通图像,请接受转换。

图4. Unity URP Lit 材质中的关键 PBR 插槽。
Unity 使用的是光滑度(smoothness),而非粗糙度(roughness)。光滑度等于 1 减去粗糙度,因此在使用外部粗糙度贴图之前需先将其反转。在 URP Lit 中,金属贴图的 Alpha 通道通常存储光滑度。HDRP 使用不同的 Mask Map 布局:R 通道存储金属度,G 通道存储环境光遮蔽,B 通道存储细节遮罩,A 通道存储光滑度。在通道打包之前,请检查当前使用的渲染管线。Unity 的 URP Lit 文档 列出了各版本对应的检查器设置。
步骤 4 - 在 Unreal Engine 中应用 PBR 纹理
将纹理文件拖入 Content Browser,创建一个材质,并在材质编辑器中将其打开。将每张纹理拖拽到节点图中,然后将反照率连接到 Base Color,将粗糙度连接到 Roughness,将金属度连接到 Metallic,将法线连接到 Normal,将 AO 连接到 Ambient Occlusion。点击 Apply 和 Save,然后在视口中将材质拖拽到网格上。

图5. 简洁的 Unreal Engine PBR 材质工作流程。
Unreal 通常能识别明确的 _Normal 后缀并建议进行法线贴图压缩,但仍需验证结果,而不能仅依赖文件名。对于粗糙度、金属度和 AO 等数值遮罩,请禁用 sRGB;而对于基础颜色,则应保持启用状态。Unreal 材质输入参考文档 说明粗糙度为 0 时表现为镜面效果,为 1 时则完全哑光。如果对遮罩进行通道打包,请为下一位美术人员记录通道顺序。
为 Web、Three.js 和 glTF 应用 PBR 纹理
glTF 2.0 是一种常见的用于金属度-粗糙度 PBR 的 Web 交付格式。从 Blender 导出 .glb 文件,可将几何体、材质和纹理打包在一起,然后使用 GLTFLoader 在 Three.js 中加载,或在 Tripo AI 3D 查看器 中预览。该查看器同时支持 GLB 和 glTF 文件。

图6. Web 交付与 AI 辅助 PBR 纹理贴图流程。
glTF 将金属度和粗糙度合并存储在一张纹理中:蓝色通道存储金属度,绿色通道存储粗糙度。遮蔽(Occlusion)是独立的纹理,读取其红色通道。如果模型在 Blender 中显示正确,但在网页上显示异常,请在修改灯光之前先检查 UV、图像颜色空间、法线方向约定以及通道打包设置。可移植的 .glb 文件在发布前应在至少一个独立查看器中进行测试。
利用 AI 纹理贴图加速工作流程
Tripo 是由 VAST 开发的 AI 驱动 3D 建模平台。其 AI 纹理贴图 工具可生成 Base Color、Normal、Roughness、Metallic 及其他 PBR 贴图,并支持对结果进行编辑。这在概念设计阶段可节省大量准备时间,但常规的质量检查仍不可省略。请检查纹理缩放比例、接缝、材质边界以及目标引擎中的导入设置。
您无需遵循固定的操作顺序。如果网格已存在,可直接上传并从纹理贴图开始。如果需要新资产,Tripo AI 3D 模型生成器 支持文本生成 3D、图像生成 3D 以及多视角生成。可根据项目需求选择 Smart Mesh 以生成面数较低的游戏资产,或选择 HD Model 以获取更丰富的几何细节,随后按需进行纹理贴图、分割、重拓扑、绑定或导出。Tripo Web 支持此类交互式工作流程,而 Tripo API 则适用于应用程序及企业级规模集成。
对于 Web 交付,请导出 GLB 格式,以便纹理随模型一同打包传输。Tripo 还支持导出 USD、FBX、OBJ、STL 和 3MF 格式,分别适用于动画、编辑和 3D 打印工作流程。请根据目标用途选择合适的格式,而非将某一种导出格式视为万能解决方案。
常见的 PBR 纹理贴图错误
- 将数据贴图视为 sRGB 图像处理。渲染器会改变其数值,导致粗糙度、法线或置换效果出现错误。
- 直接将粗糙度用于 Unity 的光滑度插槽。请先将其反转,或将反转结果打包到正确的 Alpha 通道中。
- 忽略 UV 边距和纹素密度。接缝、渗色和细节不一致的问题在远距离观察或 Mipmap 处理时会变得明显。
- 过度增强 AO 或法线强度。强度越高并不代表越真实;请在中性光照下对材质进行比较。
- 仅在单一渲染器中进行评估。导出的材质可能会暴露通道、切线空间和色彩管理方面的差异。
常见问题解答
问:如何安装 PBR 纹理?
下载纹理包,解压图像文件,并将其放置在项目的纹理文件夹中。创建一个材质,加载贴图,然后将每个文件连接到 Blender、Unity、Unreal 或目标渲染器对应的着色器输入端。
问:如何为 3D 模型添加纹理?
首先确保模型具有可用的 UV 坐标。然后创建材质,加载纹理图像,将其指定给相关着色器输入端,并在能够呈现拉伸和缩放问题的光照条件下预览效果。
问:如何将 PBR 纹理导入 SketchUp?
SketchUp 2025 及更高版本支持带有金属度、粗糙度、法线和环境光遮蔽贴图的 Photoreal Materials(照片级真实材质)。打开 Materials 面板,编辑或新建材质,添加贴图,并使用 Photoreal Materials 面样式;旧版本可能需要借助 V-Ray 等渲染器,或将文件导出到其他支持 PBR 的工具中处理。
问:如何创建 PBR 纹理?
美术师通常在 Substance 3D Painter、Quixel Mixer 或支持金属度-粗糙度工作流程的图像编辑工具中制作 PBR 贴图集。Tripo AI 纹理功能也可以自动生成贴图集,并允许你针对目标资产进行编辑。
问:不同的 PBR 贴图各有什么用途?
基础色(Base Color)存储表面颜色,法线(Normal)添加视觉细节,粗糙度(Roughness)控制反射清晰度,金属度(Metallic)区分金属与非金属材质,AO 添加接触阴影。当表面需要真实或模拟的深度感时,可选择性地使用高度或置换贴图。
问:初学者可以在 Blender 中进行 PBR 纹理制作吗?
完全可以。Principled BSDF 直接提供了标准 PBR 输入接口,而来自 Poly Haven 或 ambientCG 的免费贴图包让初学者无需从零绘制每张贴图即可进行练习。建议从基础色、粗糙度和法线入手,仅在材质确实需要时再添加金属度和 AO。
结语
无论使用哪种工具,工作流程大体相同:准备 UV,将每张贴图连接到正确的输入端,设置正确的色彩空间,并在目标渲染器中进行测试。掌握这一逻辑后,在 Blender、Unity、Unreal Engine 和 glTF 之间切换将不再令人困惑。




