# dag4blend Texture Baker
## 概述
该工具旨在将“重”材质转换为单个低分辨率的`rendinst_simple`材质,适合在最后一个 LOD(细节级别)上使用。
它还可用于将资产移植到移动项目。
从版本 `2.2.0` 开始,烘焙师还支持重新烘焙 Blender 的 Principled BSDF,从而能够通过 GLB/glTF 和纹理转换从其他软件传输带有纹理的资产,以及直接在 Blender 中“混合”材质。
## 在哪里找到它
**Bake** 面板位于 **Dagor** 选项卡下的 N 面板中。为确保烘焙过程正常运行,您需要在 Blender 的**Edit > Preferences** 设置中指定渲染设备。但是,此参数是为任何渲染设置的,因此它可能已经配置。
## Settings
在这里,即将到来的烘焙的各种参数被组织成组。
### Renderer
您可以选择执行烘焙的设备 (CPU 或 GPU) 并设置样本数。建议从一个样本开始,仅在烘焙出现 “嘈杂” 时才增加该值。
### Inputs
在这里,您可以选择烘焙模式 - 从对象到自身或从一个对象到另一个对象。根据模式的不同,参数可能略有不同。
- **Asset**: 包含要烘焙的资源的集合。当模式切换时,它将被转换为 **Lowpoly**。
- **Highpoly**: 包含将从中执行烘焙的资源的集合。这仅在第二种模式中相关,因此在第一种模式中是隐藏的。
- **Recursive**复选框确定是否检查子集合。如果为 War Thunder 烘焙一个由一个基地和几个 `_dp` 组成的房屋,最好将它们的集合放在父集合中并激活此参数。
```{important}
以下参数仅在从一个对象烘焙到另一个对象时相关,而不是从 UV 到 UV 时相关。
```
- **Use Cage**: 是否使用笼子进行烘烤。此选项仅在从对象烘焙到对象时相关,因此在第一种模式下是隐藏的。
- **Extrusion**: 定义高多边形的搜索区域将沿法线“膨胀”的程度。如果启用了 **Use Cage** 复选框且未指定自定义框架,则低多边形节点本身将用作框架,均匀膨胀,而不考虑锋利的边缘。如果未启用该复选框,则膨胀将考虑锐边。
- **Max Ray Distance**: 指定距框架(向内)的距离以搜索烘焙信息。如果设置为 0,则光线不受限制。
### Active Node
此选项卡仅存在于 **HP to LP** 模式下,并允许对 Lowpoly 节点进行详细设置。它显示活动对象的参数。
- **Cage**: 如果 **Use Cage** 复选框处于活动状态,则可以在此处指定自定义框架。按 **Init Custom Cage** 创建参数引用,然后选择所需的节点。这可以通过单击参数、使用 **Viewport** 或 **Outliner** 中的吸管,或者简单地从 **Outliner** 中拖动节点来完成。您可以通过按 **垃圾桶** 图标来完全删除参数,或者使用 **X** 重置它并选择其他节点。如果所选节点与烘焙对象的拓扑不匹配,则烘焙将失败并显示错误。
```{important}
请勿将笼子放在 **Lowpoly** 或 **Highpoly** 系列中。
```
- **Highpoly**允许您指定应从中捕获活动节点信息的节点。如果未指定任何内容,则将从每个 Highpoly 节点按顺序执行烘焙,这可能需要大量时间。最好只指定相关来源。为此,请单击 **ADD** 并选择源,类似于选择笼子的方式。 可以选择多个源。
### Outputs
此部分允许您定义要作为输出获取的内容。
- **tex_d**, **tex_n**: 用于选择相应纹理的复选框。
如果两者都未启用,则烘焙将不会启动,因为没有要烘焙的内容。
- **Width** and **Height**: 输出纹理的 rex 分辨率。限制为 2 的幂。
- If the **Reveal Result** 复选框,则插件将在成功烘焙后打开包含输出文件的目录。
- **Tex Dirpath**: 保存纹理的位置。您可以以文本形式输入路径,也可以通过 Blender 的内置文件浏览器单击右侧的文件夹图标来选择它。
- **open texture folder**: 使用作系统的文件资源管理器打开指定的目录。
- 如果启用了 **Save Proxymat** 复选框,则 Baker 还将从新纹理创建新的`rendinst_simple`代理材质。如果目录中缺少其中一个纹理(例如,如果仅烘焙了 **tex_d**),则该过程将被相应的日志条目中断。保存路径的设置方式与纹理相同。
该插件还可以在烘焙后立即分配生成的 proxymat。在这种情况下,将删除不必要的 UV 和材质,并且 Bake UV 通道将重命名为 UVMap,插件希望正确显示。
如果您需要将结果导出为 render instance,这将节省时间。如果 **Viewport** 结果不令人满意并且需要重新烘焙,则可以使用 `Ctrl`+`Z` 撤消 proxymat 的分配和信息的删除。
```{seealso}
有关更多信息,请参阅
[Proxymats](../../../../assets/materials/proxymats.md).
```
## Operators
- **Convert Principled BSDF**: 顾名思义,这会转换 Blender 的标准着色器,允许将其烘焙为 [rendinst_simple](../../../../assets/shaders/dng-shaders/rendinst_simple.md).
当材质直接在 Blender 中混合时,或者当从另一个程序的 GLB/glTF 导入资产以及纹理时,这很有用。
- **Cleanup geometry**: 从源几何体中删除不支持的着色器多边形。您如何知道着色器是否受支持?在 *Shader Editor* 中,材质的 Shader 节点应该有 `_tex_d_rgb`, `_tex_d_alpha`, `_tex_met_gloss`, 和 `_tex_mask`的输出。此功能主要针对无法烘焙的贴花而设计。Blender 无法通过透明多边形进行烘焙;顶部多边形将完全覆盖其下方的信息。
如果几何体上存在对烘焙很重要的不受支持的着色器,则可以将其重新分配给类似的着色器。例如,不支持的 [rendinst_mask_layered](../../../../assets/shaders/dng-shaders/rendinst_mask_layered.md) 可以替换为 [rendinst_perlin_layered](../../../../assets/shaders/rendinst_perlin_layered.md)。
这不必手动完成。在已安装的附加组件的目录中,有一个带有 remap 参数的文本文件:
`C:\Users\\AppData\Roaming\Blender Foundation\Blender\\scripts\addons\dag4blend\extras\remap.txt`.
使用冒号指定缺少的着色器节点的名称和替换节点的名称。如果只想更改材质,请指定其名称。
如果您还想重新映射纹理坐标,请同时包含它们(与 `_uv` 后缀的名称相同).
- **To Palette**: 顾名思义,创建材质的 “调色板”。将为每个材质创建一个平面,其中包含该材质的名称和 Bake UV 层。当您需要重新烘焙瓦片时很有用 - 资源的实际几何体只会妨碍此类任务。
- **BAKE**: 开始烘焙过程。创建纹理文件(资源集合名称 + 纹理类型后缀,以 `_` 分隔)。集合名称在第一个点处被截断,因此 `my_material.001` 创建 `my_material_tex_d.tif` 而不是 `my_material.001_tex_d.tif`。它还会删除指示 LOD 编号的结尾。
如果出现问题,它将显示一个解释性弹出窗口并写入一个日志条目。
烘焙在名为 Bake 的 UV 通道上执行 – 您需要为所有低多边形对象创建它。着色器绑定到 UV 通道的命名,因此不建议重命名现有通道。
## 场景要求
- 当您按下 **BAKE** 按钮时,烘焙中使用的所有几何体都必须可见且可选。唯一的例外是可选的笼子。
- 源几何体必须仅具有受支持的着色器。接收器几何体必须具有名为 `Bake` 的 UV 通道。对于自烘焙,这是相同的资产。
- 当然,UV 布局必须合理。仅仅创建一个 UV 通道是不够的;您还需要正确解包它。
- 单位正方形之外的所有内容都不会影响结果 – 向左/向上移动重叠的几何体,以避免在同一位置混合来自不同三角形的信息时出现奇怪的伪影。
## 限制
输出纹理和 proxymat 已准备好在引擎中使用,并在大多数图像查看器和编辑器中正确显示。但是,Photoshop 目前是一个例外。它无法正确解释 Alpha 通道,既不将其显示为第四个通道,也不显示为图层蒙版。
如果您需要更改此类纹理的 Alpha 通道,这里有一个临时解决方案:**Layer > Layer Mask >From Transparency**允许您将 Alpha 通道提取到蒙版中。在此之后,您可以复制蒙版的内容,删除蒙版,并将其复制的内容放入新的 Alpha 通道中。
这个解决方案不是最优雅的,但它很有效。仅在编辑 Alpha 时需要应用它。