3ds Max法线烘焙常见错误排查与解决方案
这次我们来看一个几乎每个做 3D 项目的人都会踩的坑:3ds Max 里的法线烘焙。法线贴图本身不复杂,但“低模烘焙出高模细节”这一步,往往在模型、UV、光滑组、烘焙设置四个环节里反复出问题。这篇文章直接跳过基础概念铺垫,把最常见、最耽误进度的错误按类型拆开,每个错误都给出“现象 -> 原因 -> 排查 -> 解决”的闭环,最后再给一套可以复制到日常项目里的烘焙规范。
3ds Max 支持自带 Render To Texture 和第三方工具(如 xNormal、Toolbag)配合使用,但烘焙逻辑是通用的。这篇文章里讲的操作,以 3ds Max 的默认烘焙面板为主,同时补齐外部工具思路。文章会覆盖 UV 覆盖、接缝、高模低模匹配、光滑组、采样率、孤立元素、硬件驱动、管线工具等 10 类高频错误。适合正在做 PBR 流程的角色、道具、场景资产的读者,也适合刚把法线贴图接入 Substance Painter 或 Marmoset Toolbag 却发现效果不对的人。
1. 核心能力速览
先把这次教程涉及的检查范围整理成一张表,方便对照自查。
| 检查项 | 说明 |
|---|---|
| 适用软件 | 3ds Max,第三方烘焙思路通用 |
| 核心技能 | 法线烘焙设置、UV 检查、光滑组、高低模匹配 |
| 常见错误覆盖 | 接缝、UV 覆盖、采样不足、孤立元素、光滑组、软硬边、穿模、射线设置、硬件驱动、管线工具 |
| 输出贴图类型 | Tangent Space Normal Map / Object Space Normal Map |
| 目标平台 | 游戏实时渲染模型、PBR 流程资产 |
| 建议贴图尺寸 | 根据项目规定,常用 2048 / 4096,需注意像素密度 |
| 是否支持批量 | 支持,同套设置可烘焙多个物体,但需逐个检查 UV |
| 排查工具 | 3ds Max 自带工具、Photoshop、xNormal、Marmoset Toolbag 4 |
| 适合场景 | 角色、道具、场景资产低模法线贴图制作 |
这里先明确一个观点:法线烘焙不是“点一下生成”就完事,它是一个需要反复验证的技术环节。下面每个错误都是美术生产线上真实出现过的问题,不只是理论推导。
2. 法线烘焙前的必要准备
在进入错误清单之前,先确认烘焙环境是否满足基本条件。很多“烘焙出来是黑的”“全是接缝”的问题,根源在准备工作没做完。
2.1 模型基础检查
- 低模(Low Poly)需要已完成 UV 展开,且所有 UV 壳没有重叠、翻转。
- 高模(High Poly)需要保证表面法线正确,不出现破面、反面。
- 高模与低模必须放在正确的位置,或者通过投影修改器指定对应关系。
- 低模需要添加足够多的边缘支撑,否则在高模细节边缘会出现拉扯变形。
2.2 场景单位与坐标轴确认
- 场景单位建议统一为厘米或米,高模与低模在同一个坐标空间内。
- 确认模型的坐标轴位置不会导致高模投影偏移。
- 检查低模是否有 Scale 非 1 的情况。烘焙前要执行 Reset XForm,否则会直接影响法线贴图方向。
2.3 3ds Max 烘焙面板入口
- 选中低模,进入菜单 Rendering -> Render To Texture,或者直接按快捷键 0。
- 确认 Output 路径存在,文件格式建议选择 TGA 或 PNG,32bit 非必须,但颜色校正要关闭。
- 勾选 Enabled 的 Maps 里要存在 NormalsMap,并在下方把 Space 设置为 Tangent Space。
这一步没有做对,后面的所有错误排查都会失真。先跑通一个最简单的 Cube 高低模烘焙,再处理复杂模型。
3. 常见错误清单速查
下面这张表可以当作工作时的快捷索引。看到哪个现象,直接跳到对应小节。
| 错误现象 | 对应小节 |
|---|---|
| 法线贴图上有明显接缝线 | 3.1 UV 接缝与烘焙硬边不匹配 |
| 模型凹凸方向完全错乱 | 3.2 UV 壳体覆盖与翻转 |
| 低模表面出现块状断层 | 3.3 高模与低模匹配不精确 |
| 细节缺失,像被“磨平” | 3.4 采样 Rays 太少或分辨率不足 |
| 孤立的 UV 壳被重复烘焙 | 3.5 孤立元素未指定唯一对象 ID |
| 圆柱体上出现棱边感 | 3.6 光滑组与软硬边设置错误 |
| 贴图上出现黑色或白色斑块 | 3.7 高模穿模与投影遗漏 |
| 烘焙在硬件加速时崩溃 | 3.8 NVIDIA/AMD 驱动兼容性问题 |
| 贴图方向跟模型不匹配 | 3.9 坐标系与单位不一致 |
| 从外部工具导入后法线反转 | 3.10 不同烘焙工具切换产生的管线问题 |
4. 错误 1:UV 接缝与烘焙硬边不匹配
这是最典型、也最容易被忽视的错误。UV 展开时,我们会在模型上切出接缝,法线贴图烘焙默认会以每个 UV 壳的边缘为界计算切线方向。如果 UV 壳的切边位置恰好没有设置烘焙硬边(Hard Edge),或者硬边位置和 UV 切边位置不一致,烘焙出来的法线贴图在接缝两侧会产生颜色突变,最终在实时渲染中看到一条明显分界线。
4.1 现象
- 旋转模型时,边缘处出现“裂缝感”或者“棱线”。
- 法线贴图在 UV 边界处颜色深浅明显不一致。
- 同一材质下,接缝线区域出现高光断裂。
4.2 原因
法线贴图是 Tangent Space 下的向量记录。引擎或渲染器在运行时,会根据 UV 的切线方向重新解码法线。当 UV 壳的切开线位置和硬边位置不一致,切线方向不连续,解码后的法线方向就会出现跳变。
4.3 排查步骤
- 展开低模的 UV 编辑器。
- 在模型上打开 Edge Selection,开启 Show Hard Edges。
- 对照 UV 壳的边界线,确认每一个 UV 壳边界都对应一条 Hard Edge。
- 如果存在 UV 壳边界没有硬边,选中这些边,设置 Hard。
- 使用 TurboSmooth 或 Meshsmooth 预览低模,观察直边和圆角交界处是否光滑。
4.4 解决方案
- 在 UV 展开阶段,尽量把 Hard Edge 和 UV 边界对齐。
- 在 3ds Max 中,选择 Editable Poly 的 Edge 层级,选中 UV 边界,点击 Edit Edges -> Hard。
- 也可以在 TurboSmooth 迭代级别中开启 Smooth Result 后观察效果。
- 对于圆柱体、立方体等规则模型,烘焙前必须统一 Hard Edge 和 UV Shell 边界。
- 可以使用脚本或插件(例如 TexTools)快速选择 UV 边界并设置 Hard。
更稳妥的做法是:打开 3ds Max 的 Normal Modifier,对比不同硬边设置下的显示效果,确认没有破面后再开始烘焙。
5. 错误 2:UV 壳体覆盖与翻转
UV 壳体重叠是最常见的“烘焙完颜色像花布”的原因。当两个 UV 壳体重叠时,烘焙器会把高模信息同时写入重叠区域,导致该区域的像素颜色是两个方向法线的混合,最终低模渲染时凹凸方向错乱。
5.1 现象
- 法线贴图上出现对称的“重影”或“交叉线”。
- 模型某些表面凹凸方向与其他区域相反。
- 贴图局部区域出现明显的 50% 紫色覆盖(法线值接近 0,0,1 时呈紫色,但如果重叠则会出现奇怪的蓝紫混合)。
注意:50% 紫色是 Tangent Space 法线贴图的常见底色,但重叠区域会从紫变成灰蓝色或者带杂斑。
5.2 原因
- 镜像 UV 时直接复制了壳体,没有拉开位置。
- 使用了对称修改器,但 UV 没有单独展开。
- 自动展 UV 时,使用了同一坐标系里的重复壳体。
5.3 排查步骤
- 打开 UV 编辑器,开启重叠检测:Tools -> Check Overlap。
- 查找是否有一个以上的 UV 壳占据相同空间。
- 检查是否启用了 Texture Lock 或像素锁定导致无法修正。
5.4 解决方案
- 在 UV 编辑器里,用 Flatten Mapping 重新展开一次,并确认每个壳互不重叠。
- 如果希望共享贴图区域,必须使用棋盘格检查工具确认镜像区域的法线方向一致,且共享区域只写入一次。
- 对于角色模型,头、手、脚等部位不要用重叠 UV,正常角色贴图烘焙通常要求无重叠 UV。
- 使用 Pack UV 工具(如 TexTools、Headus UVLayout)重新排列壳体,确保 0-1 空间利用率高且间距足够。
重叠 UV 在雕刻纹理阶段可以接受,在法线烘焙阶段通常是灾难。如果一定要做共享 UV,务必测试半透明区域的法线方向是否正确。
6. 错误 3:高模与低模匹配不精确
法线烘焙的原理是从低模表面向外发射射线,采集高模表面的法线变化。如果高模与低模的位置关系不对,射线打不到高模,或者打到了错误的高模表面,烘焙出来的法线就是错的。
6.1 现象
- 低模上某些区域完全丢失高模细节。
- 某些区域出现整块偏移、凹陷或凸起方向反转。
- 法线贴图上出现“凸包”效果,仿佛模型被莫名充气。
6.2 原因
- 高模和低模不是从同一套基础模型派生,位置有偏差。
- 高模细节超出低模的投影范围,边缘投影收敛不足。
- 低模有非等比缩放或部分点被锁定,烘焙时射线偏移。
6.3 排查步骤
- 将高模和低模同时显示,在 Persepctive 视图里切换 Face Normal,观察高模是否完全包裹低模表面,且没有高模表面穿出低模外。
- 确认两个模型在空间上是否重叠,如果不是,需要使用 Projection 修改器指定高模方向。
- 尝试增大烘焙面板里的 Envelope 或 Ray Distance,观察变化。
6.4 解决方案
- 在低模上添加 Projection 修改器,手动选择高模物体,并调整 Cage 范围。
- 烘焙前关闭低模的松弛修改器,确保最终低模和烘焙时的低模一致。
- 如果高模有大量细节是浮空结构(例如绳索、飘带),需要为一个低模面配置多个高模目标,或在渲染到纹理中选择逐个物体匹配。
- 使用 xNormal 时,可以设置 Max Ray Distance 为 5 或 10,避免过远的射线打到无关表面。
高模与低模的匹配不是视觉上“大致差不多”就行,烘焙器只认实际射线,不认肉眼感觉。最好在烘焙前冻结高模部分修改器,降低计算意外。
7. 错误 4:采样 Rays 太少或分辨率不足
烘焙出来的法线贴图出现锯齿、模糊或者细节丢失时,大多数人会怀疑是模型问题,实际上有可能是采样参数太低。
7.1 现象
- 法线贴图放大后出现明显锯齿边缘。
- 高模的倒角或凹槽细节烘焙后变浅,甚至像“磨平”。
- 贴图分辨率是 2048,但细节仍不清晰。
7.2 原因
- 烘焙器的 Samples / Rays 参数设置太低。
- 贴图分辨率相对于高模细节密度过低。
- 烘焙时使用了双线性过滤或者没有开启超采样。
- 高模表面存在大量细碎三角面,单次射线采样不足以获得稳定平均值。
7.3 排查步骤
- 检查输出贴图是否为该模型设定的最终分辨率。
- 观察高模的细节尺寸是否小于 1 个像素:如果高模细节在 1 像素范围内,无论采样多高都无法烘焙清楚。
- 对比不同 Rays 数值下的输出效果,确认细节变化趋势。
7.4 解决方案
- 将烘焙面板中的 Rays 从 1 增加到 4 或 8,xNormal 里设置为 2/5 或更高。
- 如果细节仍然不足,提高贴图分辨率,例如 2048 -> 4096。
- 对高模进行减面级优化,把不必要的过密三角面清理掉。
- 在 3ds Max 中烘焙时,开启 Supersample 或 Multi-Resolution 相关选项。
- 输出时选择 32bit TGA 或 EXR,避免细节在 8bit 颜色深度下丢失。
这个错误的危险之处在于它不会直接报错,只会让最终效果“差一点”。建议项目初期就设定烘焙分辨率的下限,避免片体浪费。
8. 错误 5:孤立元素未指定唯一对象 ID
当低模由多个分离物体组成,或一个模型包含多个材质 ID 时,烘焙经常会漏掉某些部分。主要原因是烘焙器会按对象 ID 或元素 ID 生成烘焙结果,如果某些面没有分配对应的 ID,就无法输出法线贴图。
8.1 现象
- 烘焙完成后,某个部件在低模上完全没有法线贴图。
- 某个元素烘焙出来的颜色与其他元素明显不一致。
- 重复使用同一 UV 壳的多个物体,在 3ds Max 里只输出了一张贴图。
8.2 原因
- 低模由多个独立物体组成,但没有合并或没有统一指定烘焙对象。
- 使用了 Multi/Sub-Object 材质,但单个子材质没有对应烘焙 ID。
- 孤立元素(或叫 Element)在 3ds Max 中是独立面集合,烘焙时只对最外面的一个 Element 生效。
8.3 排查步骤
- 选中低模,进入 Element 层级,检查是否存在多个互不相连的面集合。
- 每个 Element 的面 ID 是否一致。
- 在 Render To Texture 面板中,确认 Objects 列表中是否包含全部需要烘焙的物体。
8.4 解决方案
- 将多个物体使用 Attach 合并为一个 Editable Poly,然后统一分配材质 ID。
- 或者分别用 Render To Texture 烘焙每一个物体,然后导出到 Photoshop 中拼合。
- 如果不想合并物体,也可以使用 xNormal 将多个高模和低模放在同一场景烘焙,内部会统一处理。
孤立元素问题在道具模型中尤其常见。例如一把枪,枪身、弹匣、扳机如果各自分离,不合并,烘焙后你只会得到其中一部分的贴图。
9. 错误 6:光滑组与软硬边设置错误
法线贴图记录的是“低模表面法线应该变到哪个方向”,实时渲染时引擎会结合低模自身的光滑组来解码。如果低模的光滑组设置不合理,即使法线贴图内容正确,渲染效果依然会出现错误折痕。
9.1 现象
- 圆柱体低模烘焙后表面看似光滑,但切边处出现一条“硬边阴影”。
- 低模表面出现棱面感,尤其是圆形物体。
- 法线贴图上的切线方向与低模光滑组方向矛盾。
9.2 原因
- 低模没有设置光滑组,所有面默认是硬边,导致切线分裂。
- 光滑组设置过密,导致不该平滑的区域也被平滑。
- 使用 TurboSmooth 的低模在烘焙后,实际网格发生了变化,但光滑组没有同步更新。
9.3 排查步骤
- 选择低模,进入 Polygon 层级,在 Polygon: Smoothing Groups 面板里查看每个区域的光滑组。
- 对比 UV 壳接缝位置,确保需要平滑的区域共享同一个光滑组。
- 使用 TurboSmooth 迭代 1 次,观察模型表面是否有不应该出现的棱线。
9.4 解决方案
- 给低模手动指定光滑组:圆柱体侧面统一设为一个光滑组,两端的圆盖单独设一个。
- 在 UV 壳边界处设置硬边,同时保证该边界两侧的光滑组不相同。
- 如果使用 3ds Max 自带烘焙,在 Render To Texture 面板里可以把 NormalsMap 的 Render Into 选项设置为 Source Low Poly 或 Baking Object。
- 如果低模只用于烘焙,不用于最终游戏,烘焙时可以选择“不输出自身法线”的方式,让高模方向完全决定法线贴图。
光滑组 30 和光滑组 32 之间的交界处会产生切线跳变,这个跳变会直接写入法线贴图。建议在烘焙前先检查一次低模的光滑组数量,减少不必要的分组。
10. 错误 7:高模穿模与投影遗漏
当高模有大量细小部件、绳索、头发片,或者高模没有进行碰撞解算时,低模的射线可能直接穿过高模的缝隙,打不到任何表面。烘焙器会输出空心或黑色区域。
10.1 现象
- 法线贴图上出现明显黑色像素。
- 低模表面某些区域烘焙后是纯 128,128,255 的基础紫色,没有高模细节。
- 多个高模部件互相穿插,导致细节彼此干扰。
10.2 原因
- 高模部件之间没有模拟碰撞,互相穿入。
- 低模的投影距离不足,导致射线没有延伸到高模内部。
- 高模表面存在反向法线或双面显示下看起来正常,实际单面法线朝向错误。
10.3 排查步骤
- 在视口中显示高模的 Backface Cull,翻转视角观察有没有反向表面。
- 烘焙后把法线贴图作为视口背景,检查黑色区域对应的模型位置。
- 将高模隐藏后单独显示低模,对比射线方向是否与高模表面法线方向一致。
10.4 解决方案
- 在 3ds Max 的高模上添加一个 Push 修改器,把表面向外膨胀一毫米,避免穿插面。
- 对浮空部件,在烘焙前按物体单独匹配。
- 使用 xNormal 时,可以设置 Ignore Back Faces 选项,屏蔽低模背面误采样。
- 检查高模是否为可变形物体,如果使用 Cloth 模拟,需要先塌陷为普通 Mesh 再作为高模烘焙。
穿模问题难以通过参数完全解决,最有效的办法是调整高模的形态。高模穿插严重时,哪怕烘焙参数全对,输出结果也是脏的。
11. 错误 8:NVIDIA/AMD 驱动兼容性问题
有些烘焙失败跟模型和贴图设置完全无关,而是硬件驱动问题。3ds Max 的 Render To Texture 依赖硬件加速的 DirectX 或 OpenGL 路径,驱动版本过旧、新驱动与 3ds Max 版本冲突、GPU 显存不足,都会导致烘焙崩溃或输出空白贴图。
11.1 现象
- 点击 Render 后 3ds Max 闪退或无响应。
- 烘焙进度条走到底部,但输出文件为空或只有全黑图片。
- 只在部分机器上出现该问题,其他机器正常。
11.2 原因
- 显卡驱动不兼容当前 3ds Max 版本。
- 硬件加速模式与 OpenGL/DirectX 路径冲突。
- 显存满载,烘焙大数据量时 OOM。
11.3 排查步骤
- 打开 3ds Max,进入 Customize -> Preferences -> Viewports,查看当前的 Display Driver。
- 将 Viewport Driver 切换到 Nitrous 或 DirectX 11,观察是否改善。
- 检查任务管理器中的 GPU 显存占用,确认烘焙前未占用 80% 以上。
11.4 解决方案
- 升级显卡驱动到 Studio Driver 版本,不要用 Game Ready 驱动处理生产任务。
- 将 3ds Max 的首选项中的 Viewport Driver 改为 Software 或 DirectX 模式测试。
- 烘焙超大场景时,逐物体烘焙,避免一次处理多对象。
- 如果显存不足,降低烘焙分辨率或分批处理;
- 排查时可以先创建简单 Box 高低模,测试是否复现崩溃。如果简单模型正常,说明问题在模型规模,如果简单模型也崩溃,问题在驱动环境。
硬件问题要趁早排查,不要为了追求效率关闭所有检查。生产项目里因为驱动问题导致渲染一夜白费的案例不在少数。
12. 错误 9:坐标系与单位不一致
3ds Max 烘焙出的法线贴图在外部引擎中方向反转,是一个经常被误解的问题。并不是贴图“坏了”,而是坐标系的轴向约定不同。
12.1 现象
- 法线贴图导入 Unity 后,凸起变凹陷,凹陷变凸起。
- 法线贴图导入 Unreal 后,只有某个轴方向错误。
- 同一个模型在 3ds Max 视口里显示正常,在 Substance Painter 里预览时方向反转。
12.2 原因
- 3ds Max 默认使用右手坐标系(Y 轴向上),而 OpenGL 与 DirectX 对 Tangent Space 的法线向量方向约定不同。
- 一些引擎使用左手坐标系(Z 轴向上),需要通过材质节点翻转 Green 通道。
- 烘焙时选择了 Object Space,但引擎期望 Tangent Space。
12.3 排查步骤
- 检查烘焙时选择的 NormalMap Space 是 Tangent Space 还是 Object Space。
- 打开 Photoshop,观察法线贴图 RGB 通道;Tangent Space 法线贴图的 R、G 通道应分别对应 U、V 方向,B 通道通常偏蓝。
- 在目标引擎中测试立方体模型,观察光照方向。
12.4 解决方案
- 在 3ds Max 烘焙时,默认选择 Tangent Space,并确认贴图导出时没有勾选 Flip Green。
- Unity 使用左手坐标系,需要把绿色通道反向(Normal Y 取反)。
- Unreal Engine 使用右手系,通常不需要翻转,但部分版本需要设置 Compression Settings 为 Normalmap。
- 在导入角色模型时,注意模型的缩放和旋转是否已复位,否则法线方向会被动画系统进一步干扰。
跨平台管线问题没有统一答案,建议在项目启动阶段就定好引擎的法线约定,并由 TA 写成文档,避免每个美术师各自猜。
13. 错误 10:不同烘焙工具切换产生的管线问题
一款软件里烘焙没有问题,换到另一款工具后一切都对不上。这个错误越来越多见,因为很多团队从 3ds Max 烘焙迁移到 Marmoset Toolbag 4、Substance Painter 或 xNormal。
13.1 现象
- 3ds Max 烘焙的贴图和 Substance Painter 烘焙的贴图,在同一套高模低模下表现不同。
- 外部工具烘焙的结果在 3ds Max 里显示正常,在游戏引擎里异常。
- 切线和副法线的方向出现 180 度反转。
13.2 原因
- 不同工具对 MikkTSpace 的兼容程度不同。
- 3ds Max 的低模 Tangents 计算方式可能与部分引擎不一致。
- 外部工具使用了自己默认的 Cage 距离和射线方向,没有匹配 3ds Max 里的设置。
- 高模在迁移过程中发生了单位换算、轴向变化。
13.3 排查步骤
- 使用一个标准网格(如 Sphere 加上一个凹坑)分别在 3ds Max 和外部工具中烘焙,对比法线贴图 RGB 差异。
- 检查引擎自带的 Normal Import Mode 设置。
- 确认低模使用的 Fbx 导出设置里,Tangents and Binormals 是否被重新计算。
13.4 解决方案
- 统一项目内所有烘焙工具的 Tangent Space 实现,建议使用 MikkTSpace 标准。
- 导出 FBX 时,选择 Embed Textures 和 Convert Scene Units,避免单位转换。
- 在 Marmoset Toolbag 4 中,烘焙设置面板可以选择 MikkT 或 3ds Max 风格切线,按项目需求切换。
- 如果混用工具,至少保证最终导入引擎的 FBX 由同一个导出器导出。
管线切换不是“随便换工具”,而是需要重新验证一整条流程。特别是法线贴图这种对切线方向敏感的资源,一定在切换工具后做回归测试。
14. 通用排查流程
当烘焙结果异常时,按下面的顺序排查,不要跳步。
| 步骤 | 操作 | 判断标准 |
|---|---|---|
| 1 | 检查场景单位与模型轴向 | 单位统一,坐标轴已复位 |
| 2 | 检查低模的 XForm | Reset XForm 已执行 |
| 3 | 检查低模 UV | 无重叠,壳间距足够 |
| 4 | 检查光滑组与硬边 | UV 壳边界与硬边对齐 |
| 5 | 检查高模与低模相对位置 | 高模包裹低模,无穿插 |
| 6 | 检查烘焙面板参数 | Space=Tangent Space,Rays 足够 |
| 7 | 用 Cube 测试烘焙环境 | Cube 正常,则问题在模型本身 |
| 8 | 检查输出贴图色彩空间 | 不要被 sRGB 输入影响法线数据 |
| 9 | 在目标引擎中验证 | 用基础光照方向测试凹凸方向 |
其中第 7 步最容易忽略:如果你无法判断是模型问题还是环境问题,做一个 Box 烘焙测试能快速定位。所有参数都用默认值,如果 Box 烘焙结果正常,说明 3ds Max 环境没问题,问题集中在模型上。
15. 法线烘焙最佳实践
在项目开始阶段就建立一套固定的烘焙规范,能省下一半的返工时间。
15.1 模型阶段
- 低模要保留必要的边缘环,锐利边缘处提前做 45 度倒角,方便后续法线贴图过渡。
- 高模的细节不要过度集中在小于 1 像素的区域。
- 高模不要有多余的背面和隐藏物体,关闭未使用的图层。
15.2 UV 阶段
- 全部 UV 壳展开后,使用棋盘格检查拉伸比例。
- 每个 UV 壳之间保持 4-8 像素间距,避免采样溢出。
- 如果模型对称,尽量做完全独立 UV,不做重叠贴图。
- 使用 UDIM 时,每个 tile 单独烘焙,避免跨 tile 法线采样错乱。
15.3 烘焙阶段
- 分辨率建议从项目要求的最大输出开始,一般不要低于 1024,道具细节多时用 2048 或 4096。
- Rays 值从 4 开始测试,如果边缘仍有锯齿,尝试 8 或 16。
- 勾选 Normalize 或类似选项,确保法线贴图向量单位化。
- 输出的法线贴图不要直接使用 JPEG 压缩,推荐 TGA、PNG 或 TIF。
15.4 验证阶段
- 在低模上直接应用法线贴图,配合高光显示,检查棱边和高光走向。
- 用 Marmoset Toolbag 加载模型,切换不同环境光测试。
- 在目标引擎里用平行光从不同角度照射,确认凹凸方向正确。
- 如果出现方向问题,优先检查 Green 通道是否翻转,不要盲目修改模型。
15.5 资源管理
- 高模、低模、烘焙输出、最终贴图分目录存放。
- 烘焙输出文件名建议包含模型名和贴图类型,例如
hero_sword_N.png。 - 每次修改高模后重新烘焙,不要沿用旧贴图。
- 使用版本控制管理 max 文件和贴图资源时,注意法线贴图是二进制资源,不适合频繁对比。
16. 提升法线烘焙输出质量的小技巧
这几条不是“必须遵守”,但能在复杂模型上明显减少返工。
- 使用 3ds Max 的 Snapshot 工具将高模冻结为网格,避免高模的修改器堆栈在烘焙过程中重新计算。
- 在烘焙前删除所有隐藏的高模面,减少投影干扰。
- 如果高模由大量重复结构组成,比如链条、螺丝,先做一部分测试烘焙,再批量处理。
- 对较大的 UV 壳和较小的 UV 壳分开烘焙,小型壳体的采样不足会拖累整体画面质量。
- 烘焙完成后在 Photoshop 中执行一次 3D 的 Normal Map 过滤,或者直接在 Substance Painter 里叠加细节,而不是反复重新烘焙。
17. 常见问题与排查方法速查表
下面这些组合是实际工作中出现频率最高的问题,直接对照处理。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 法线贴图上有明显接缝 | UV 壳边界与硬边不匹配 | 显示 Hard Edges,逐壳检查 | 把 UV 壳边界全部设为硬边 |
| 贴图大面积出现紫黑色 | UV 重叠或高模未匹配 | Check Overlap,检查投影距离 | 重新展 UV,调整高模位置 |
| 圆柱体出现棱边 | 光滑组错误或缺少硬边 | 查看光滑组编号 | 圆柱侧壁设同一光滑组 |
| 细节全丢 | 采样不足或分辨率太低 | 检查 Rays 和贴图分辨率 | 增大 Rays 到 4 以上,提高分辨率 |
| 红色通道发灰 | 切线与 UV 方向不一致 | 检查 U 方向在 UV 中的对应 | 重新设置切线方向,或使用 MikkTSpace |
| 绿色通道反转 | 引擎坐标系与烘焙工具不一致 | 在引擎中反转测试 | 翻转 G 通道或设置引擎 Normal Import |
| 烘焙时闪退 | 驱动问题或显存不足 | 测试 Box 烘焙,查看 GPU 占用 | 更新驱动,分批烘焙 |
| 贴图在引擎里偏色 | sRGB 颜色空间误开启 | 检查贴图导入设置 | 法线贴图导入设为 Normalmap,关闭 sRGB |
| 低模没有法线效果 | 没有指定高模 | 检查 Projection 设置 | 选择正确高模并设置 Cage |
| 烘焙结果半透明 | 高模背面被采样 | 开启 Ignore Back Faces | 开启背面忽略,或增加 Ray Distance |
18. 后续可以继续扩展的方向
法线烘焙跑通之后,你大概率会遇到下一个更实际的问题:如何在同一套流程里高效迭代多套贴图。值得继续深入的方向包括低模风格化处理与法线细节互补、多象限 UV 与 UDIM 烘焙、高模细节的曲率贴图辅助、以及 3ds Max 与 Substance Painter 之间的“烘焙 + 绘制”双向协作。每一次调整都要回到最基本的 UV 和光滑组检查上,这套底层审查能力比记住任何快捷键都重要。希望这份清单能帮你减少一次“烘焙出来全是接缝”的深夜加班。
