安装
为避免每次都搜索磁盘上的节点,您可以将其添加到自定义库中。为此,请转到Edit > Preferences > Projects > Library > “+”,然后在弹出窗口中添加包含节点的目录。对于内部团队成员,该目录位于:
<engine_root>/tools/substance_library/
如果您已经有一个自定义库,则只需将节点复制到其中即可。添加后,该节点将在 Filters > Transforms 选项卡下可用,并可通过搜索访问。
用法
要使用该节点,请将其拖动到新的 Substance Graph 中,并将具有 Alpha 通道的漫反射纹理连接到tex_d输入。初始结果 (tex_d_mips) 可能并不完美,可能需要进一步配置。如果它从一开始就看起来正确,则可能不需要自定义 mip。
初始设置
让我们考虑一个不太理想的输入示例:一个 7x13 单元格的金属网格,其中单元格的边缘与纹理的边缘对齐。
Note
这是一个非常糟糕的情况,理想情况下,这些问题中的大多数都应该在纹理创建过程中得到解决。
首先,调整全局偏移量。在 Main 选项卡中,输入网格单元格的数量,并将 Half Cell Offset 设置为 True。请注意,更改此参数将生成第二个输出 – tex_d_offset,它不包含 mip。
配置漫反射后,请记住连接法线贴图输入以应用相同的偏移。
:::{grid} 2
:::
Mip 调整
现在,让我们继续配置 mips。这些设置在所有 mip 级别上都是一致的。前几个 mip 可能不需要修改。在输出图像中,mip 从左到右依次为 0、1、2 等。找到第一个看起来不清楚的 mip 后,开始配置设置。
例如,对于 mip 级别 2 (mip02),线条可能看起来不清晰。最初,您可以通过调整对比度和中点滑块来改善这一点。
但是,在某些时候,对比度将不再足够 - mip 分辨率将太低,无法正确渲染单元格。这就是 cell count 设置派上用场的地方。
首先,设置单元格数,以便每个 mip 级别绘制一个完整的单元格。 当边缘围绕周边对齐时,配置会更容易,因此您可能希望暂时切换到零 mip 的半单元偏移量。
然后,减少细胞数量,大约为原始计数的一半。您可以尝试较小的减少,但您需要在游戏中进行测试,以确保不会因行偏移而不是单元格计数的减少而发生明显的闪烁。
:::{grid} 2
:::
对于 mip05,提高线条清晰度需要将7x13网格减少到4x8。
如果已裁剪掉纹理的明显不同区域,则可以使用偏移工具重新定位它。步长对应于一个网格单元格。
随着分辨率的降低,线条粗细将不可避免地成比例增加,因为它不能比单个像素更细。但是,如果线条在远距离 mip 上保持两个像素粗,并且对比度调整没有帮助,则可以为有问题的 mip 手动输入非整数偏移量。通常,值0.01就足够了。
:::{grid} 2
:::
最终,纹理将退化为无法读取的像素簇。为避免手动调整超出此点的每个 mip 的“中点”,主要选项卡允许您将所有后续 mip 中的 Alpha 通道替换为纯色填充 - 完全透明或完全不透明。
这些 mip 的设置是隐藏的,以保持界面整洁,并使其更易于导航列表。
启用自定义 Mip
简单地以这种方式修改纹理会破坏它在 Asset Viewer 和游戏中的显示。您还必须指定纹理包含自定义 mip,否则引擎会误解它。
为此,请在纹理本身所在的目录中创建一个以纹理命名的.tex.blk 文件(不带扩展名)。在此文件中,指定纹理名称并包含相应的块。
例如,对于纹理 barbwire_tex_d.tif,barbwire_tex_d.tex.blk 文件将如下所示:
name:t="barbwire_tex_d.tif"
include "#/develop/assets/_srgbx_with_mips.blk"