Marmoset Toolbag|烘焙与渲染

适用版本:Marmoset Toolbag 5.02,由坂琴写完粗稿然后交给ChatGPT优化。粗搞位于👉学习建模所记录的一些笔记 | 坂琴的小窝🍜

在游戏 PBR 管线中的职责

Toolbag 在这套流程中承担两件事:一是把高模信息稳定投射到最终低模;二是在中性灯光和展示灯光下验证 PBR 材质。烘焙是否合格要以目标引擎中的最终三角化低模为准,而不是只看 Toolbag 视口是否漂亮。

公司生产常用的完整烘焙顺序

A. 烘焙前预检

  1. 确认低模就是最终三角化版本,UV、平滑组、材质槽和顶点法线已经锁定。
  2. 确认高低模的单位、位置、比例和旋转完全一致,不能靠导入后手动对齐来掩盖源文件问题。
  3. 部件名_low部件名_high 成对命名;不同 Bake Group 的主体名不能误撞。
  4. 检查低模 UV:无意外重叠、足够 Padding、硬边/UV 缝关系合理。
  5. 确认最终引擎的切线空间与法线方向;不知道时先做一个有明确凸凹的小测试件。

B. 建立并核对 Bake Project

  1. 场景 / Scene 中添加 新建烘焙项目 / New Bake Project
  2. 使用 快速加载器 / Quick Loader → 加载 / Load 导入 FBX。
  3. 展开每个 烘焙组 / Bake Group,逐一确认 Low 和 High;自动分组不正确时先修源命名,再重新加载。
  4. 暂时隐藏其他组,只看当前部件,检查高低模是否重合、是否少件、是否有错误缩放。
  5. 保存一个低质量测试配置,再保存最终配置,避免每次从高采样开始等待。

C. 包围框、偏斜与匹配

  1. 打开低模的 包围框 / Cage 显示,先让 Cage 覆盖高模最外层细节。
  2. Cage 太小会漏投,太大会射到邻近零件;先调全局距离,再修局部区域。
  3. 对狭缝、斜面、圆角交界等射线方向不理想的位置,使用 偏斜校正 / Skew 做局部修正。
  4. 靠得很近的零件优先拆成不同 Bake Group;不要只靠把 Cage 无限缩小解决串投。
  5. 需要镜像/堆叠时,按项目方法临时移开、偏移 UV 或使用匹配分组,烘焙后再验证接缝。

D. 从测试法线到正式套图

  1. 首轮只烘 法线 / Normal,使用低分辨率和较低采样。
  2. 在低模预览材质上放大检查:硬边黑缝、波浪、接缝、梯度、漏投、穿帮和左右凹凸方向。
  3. 问题修复顺序:低模拓扑/三角化 → 平滑与 UV → 高低模位置 → Bake Group → Cage/Skew → 采样。
  4. 法线通过后再烘 AO、曲率、厚度、位置、ID 等项目需要的图。
  5. 最后提高目标分辨率和采样,按最终纹理尺寸设置 Padding;记录设置,便于资产返修时复现。
  6. 把输出导入 Painter 后,检查纹理集和 Mesh Maps 是否一一对应,再开始正式材质制作。

💡 采样 32、2K Padding 4 px、4K Padding 8 px是原课程参考起点,不是“公司统一标准”。目标平台、贴图压缩、Mipmap 和资产观察距离才决定最终参数。

Part A|高低模烘焙

1. 在 3ds Max 中准备模型

高低模命名

“快速加载器 / Quick Loader”会根据名称识别高模与低模:

  • a_low:低模;
  • a_high:高模;
  • bolt_low / bolt_high:另一组对应部件。

关键不是字母 a,而是相同的对象主体名 + _low / _high 后缀。例如 body_low 应与 body_high 配对,不能让不相关对象共用同一主体名。

材质分配

原笔记要求给高低模分别指定名为 low 和 high 的不同颜色材质。整理后需要分开理解:

  • “快速加载器 / Quick Loader”的高低模自动分组主要依赖对象命名,不要求材质必须叫 low/high。
  • 不同颜色材质可以用于检查、材质 ID / Material ID 或区分纹理集 / Texture Set,但这是项目策略,不是高低模识别的必要条件。

✅ 修正:不要把“材质命名”和“高低模对象命名”混成同一个规则。

FBX 导出检查

  • 导出 Autodesk FBX。
  • 导出低模的平滑组。
  • 根据目标切线工作流决定是否导出“切线和副法线 / Tangents and Binormals”。
  • 如果高模在 3ds Max 中使用“涡轮平滑 / TurboSmooth”,确认导出时究竟是应用修改器结果,还是准备在 Toolbag 中细分;不要两边都加导致面数翻倍。
  • 保证高低模处在一致的位置、比例和坐标空间。

2. 新建烘焙项目 / Bake Project

  1. 在“场景 / Scene”中添加“新建烘焙项目 / New Bake Project”。
  2. 在烘焙项目下使用“快速加载器 / Quick Loader → 加载 / Load”导入刚导出的 FBX。
  3. 检查每个“烘焙组 / Bake Group”中的“低模 / Low”与“高模 / High”是否正确配对。
  4. 检查低模的“包围框 / Cage”和“偏移 / Offset”,避免射线穿到邻近部件。
  5. 必要时给高模增加细分,但不要重复细分。

3. 法线与切线空间

设置 含义
切线空间 / Tangent Space 选择目标渲染器或引擎的切线空间约定。
切线计算 / Tangent Calculation 决定切线在顶点还是像素层面计算。
切线方向 / Tangent Orientation 决定 Y 方向;右手系通常称 Maya/OpenGL,左手系通常称 3ds Max/Direct3D。

最稳妥的做法:用与最终展示/引擎一致的切线空间完成烘焙和渲染。 如果凹槽看起来像凸起,优先检查绿色通道方向,而不是重新乱调灯光。

4. 输出设置

原笔记的参考值:

  • 采样 / Samples:32;
  • 扩边 / Padding:自定义 / Custom;
  • 2048 贴图的扩边大小 / Padding Size 使用 4 px;
  • 4096 贴图的扩边大小 / Padding Size 使用 8 px;
  • 格式 / Format:TGA。

这些值可以作为课程练习起点,但不是固定标准:

  • 分辨率翻倍时 Padding 也翻倍,可以保持近似的相对边距,这是合理思路。
  • 采样 / Samples 越高通常越干净,但耗时也会增加,应先低采样测试再提高。
  • TGA 不是唯一正确格式;PNG、TIFF、PSD 等要按位深、Alpha 和项目管线选择。

5. 先测试法线,再烘完整套图

推荐顺序:

  1. 先只开“法线 / Normal”。
  2. 快速烘焙并放大检查接缝、波浪、穿帮和硬边。
  3. 调整“包围框 / Cage”“倾斜校正 / Skew”、平滑或分组。
  4. 法线没有明显问题后,再开:
    • 曲率 / Curvature;
    • 环境光遮蔽 / Ambient Occlusion(AO);
    • 其他项目需要的图。
  5. 点击“开始 / Start”进行正式烘焙。
  6. 使用“预览材质 / Preview Material”在低模上检查结果。

Part B|材质预览与最终渲染

1. 导入模型与贴图

  1. 使用“导入模型 / Import Model”导入低模。
  2. 在材质列表中选中对应材质。
  3. 按贴图语义连接,而不是只凭文件名拖入。
Painter 输出 Toolbag 中的用途 注意
基础颜色 / Base Color 反照率或基础颜色 / Albedo or Base Color 通常按 sRGB 颜色数据读取。
法线 / Normal 法线/凹凸 / Normal/Bump 输入 “表面 / Surface”不是“法线”的同义词;具体槽位名称以 5.02 为准。
粗糙度 / Roughness 微表面 / Microsurface → 粗糙度 / Roughness 黑色偏光滑,白色偏粗糙。
金属度 / Metallic 反射率 / Reflectivity → 金属度 / Metalness 不是“粗糙度 / Roughness”或“微表面 / Microsurface”本身。
环境光遮蔽 / AO 遮蔽 / Occlusion 若来自混合贴图,选择正确的 R/G/B 通道。
不透明度 / Opacity 透明 / Transparency 或 Alpha 选择“镂空 / Cutout”还是半透明取决于材质类型。

贴图读取还要区分颜色与数据:Base Color/Emissive 通常按 sRGB;Normal、Roughness、Metallic、AO、Height 和通道打包图通常按线性数据读取。 若项目材质预设已经自动处理,仍要检查结果而不是重复手动转换。

✅ 修正:之前把“金属度 / Metalness”也归到“微表面 / Microsurface”。更清晰的理解是“粗糙度 / Roughness”控制微表面粗糙度,而金属度属于反射/金属度模型。

2. 混合贴图的通道选择

如果 Painter 输出一张 Mix 图,例如:

  • R = Roughness;
  • G = Metallic;
  • B = AO;

那么在 Toolbag 的各个槽位中都导入同一张 Mix 图,但分别指定 R、G、B 通道。通道顺序只是项目约定,必须以输出模板为准,不能想当然。

3. 法线的反转 Y / Flip Y

原笔记写的是“DX11 法线在八猴里要勾 Flip Y”。更安全的判断方式是:

  1. 先确认导出图是 DirectX(Y-)还是 OpenGL(Y+)。
  2. 确认 Toolbag 当前材质/项目采用的方向。
  3. 只有两者不匹配时才启用“反转 Y / Flip Y”。
  4. 用明确的凹槽/凸点和移动灯光来验证。

⚠️ 不要把“反转 Y / Flip Y”当成每次导入都必须勾选的固定动作。

4. HDR 环境光

  1. 在“场景 / Scene”中选中“天空 / Sky”。
  2. 在“来源 / Source → 资源库 / Library”中选择 HDR 环境。
  3. 旋转环境光,观察高光是否把材质形体讲清楚。
  4. 材质检查阶段优先使用中性 HDR;最终出图再追求气氛。

5. 相机与出图

  1. 在“场景 / Scene”中选择“新建相机 / New Camera”,或设置“主相机 / Main Camera”后复制多个机位。
  2. 调整构图、焦距、景深和模型占画面比例。
  3. 在“渲染 / Render”中,把需要出图的相机加入“渲染相机 / Render Cameras”。
  4. 设置输出分辨率、路径和文件格式。
  5. 建议“采样 / Samples”设为 512 或 1024,可作为高质量出图参考;最终仍要根据噪点、分辨率、灯光复杂度和耗时决定。
  6. 点击“渲染图像 / Render Image”。

常见问题

现象 优先检查
凹凸反了 Normal 的 Y 方向、Flip Y、导出格式。
硬边出现黑缝 低模平滑、UV 缝、切线空间和三角化是否一致。
AO 穿帮 烘焙组 / Bake Group 隔离、包围框 / Cage、搜索距离 / Search Distance、邻近零件。
边缘漏烘 包围框 / Cage 覆盖、扩边 / Padding、UV 越界和高低模位置。
材质像塑料 Roughness、Metalness、颜色空间和 HDR 是否合理。
通道完全不对 Painter 输出模板与 Toolbag 通道选择是否一致。

交给 Painter 或引擎前的阶段门

  • [ ] 高低模分组与名称匹配正确,没有零件串投。
  • [ ] 最终三角化低模、UV、平滑组与目标引擎版本一致。
  • [ ] Normal 已单独测试,硬边、接缝、Cage 和 Skew 问题已处理。
  • [ ] AO/Curvature 等辅助图没有明显穿帮,且不是靠涂抹掩盖几何错误。
  • [ ] 法线 Y 方向与目标管线一致;Flip Y 不是无条件勾选。
  • [ ] 分辨率、位深、格式、采样和 Padding 符合当前项目要求。
  • [ ] 导入 Painter 后 Mesh Maps 对应正确;导入引擎后没有新的法线接缝。
  • [ ] 中性 HDR 下材质成立,展示灯光没有掩盖粗糙度或法线问题。

复习

  • 命名:主体名一致,后缀用 _low / _high。
  • 第一次只烘 Normal,先查错。
  • “切线空间 / Tangent Space”要与最终引擎一致。
  • “粗糙度 / Roughness”在“微表面 / Microsurface”;“金属度 / Metalness”在“反射率 / Reflectivity”。
  • “反转 Y / Flip Y”只在方向不匹配时使用。
  • 扩边 / Padding、采样 / Samples、格式都按项目和测试结果决定。

参考核对