汉化标题:通用 – UV2
原文页面:General-–-UV2
原文锚点:a960907
汉化时间:2026-09-12T19:00:00+08:00
现在你可以为某些网格添加第二套 UV 映射,并将其用于叠加纹理,以获得更多细节。举个例子,假设你正在制作一辆 F1 赛车,并且已经对车身网格做了展开,以便烘焙出细节均匀分布的漂亮 AO。你还想在上面加一些贴纸,但 AO 纹理只有 2K 分辨率的话,贴纸看起来会很寒酸,而 4K 又可能有点过头。有了 UV2,你可以专门为贴纸单独做一次展开,让它们独立的纹理可以更高效地利用空间。
如何向 KN5 添加 UV2
目前,以现有的 KN5 格式还没有什么好办法直接向模型添加 UV2,不过与 VAO 补丁类似,你可以生成一个额外的二进制文件,供 CSP 读取并从中加载 UV2。只需使用 Content Manager:Content/Tools/Creator 中有一个工具,可以读取 FBX 文件,筛选出具有两套独立 UV 的网格,并生成一个新的“.uv2”文件,你可以将它保存到 KN5 文件旁边(使用相同的文件名)。
如何在材质中使用 UV2
目前最简单的方式是使用着色器替换,并从中加载纹理(如果你不想让“extension”文件夹里最终塞满成百上千张纹理,请记住你随时可以把它们全部放进一个 zip 文件,然后用“SOMETHING = textures.zip::path/in/zip.dds”的方式引用)。
目前有三个支持 UV2 的着色器:
nePerPixelMultiMap_AT_NMDetail_stickers;smCarPaint(及其衍生版本);stPerPixelMultiMap_specular(以及 stPerPixelMultiMap_specular_damage_dirt)。
着色器 smCarPaint 用“materials_carpaint.ini”配置起来更容易,其中也包括贴纸。只需查找 StickersTexture、StickersMapsTexture 和 StickersCoverDetails 参数(提醒一下,对于这些 material_… 文件,你随时可以打开文件本身查看,它们的前半部分都有完整的文档说明)。
对于其他着色器,着色器替换可能长这样:
[SHADER_REPLACEMENT_...]
MATERIALS = …
SHADER = nePerPixelMultiMap_AT_NMDetail_stickers
PROP_... = extStickersMode, 1
RESOURCE_0 = txStickers
RESOURCE_FILE_0 = my_texture_pack.zip::stickers.dds属性 extStickersMode 是一组标志,也就是说,只需把你需要的值相加即可得到所需的行为。目前支持:
1:激活贴纸层(不过其他任何标志也会激活它,而且在使用nePerPixelMultiMap_AT_NMDetail_stickers着色器时它始终处于激活状态);2:贴纸的 Alpha 也会影响漫反射纹理的 Alpha,也就是说细节纹理会被贴纸遮挡;4:使用额外的txStickersMaps槽位来同时修改txMaps(仅在txStickersMaps的 Alpha 非零的地方生效);8:仅nePerPixelMultiMap_AT_NMDetail_stickers可用,使用额外的txStickersNormals槽位来修改txNormal,添加于 v0.1.80-preview446。
因此,举例来说,如果你想同时使用细节遮挡和 txStickersMaps,把它们全部相加即可,得到 1+2+4=7。如果只需要细节遮挡,使用 1+2=3。
已知限制
- 虽然 CM 中的车辆 LOD 生成器支持 UV2,但仍可能出现一些混乱,请谨慎使用。某些模型甚至可能需要进一步调整 Simplygon 规则。
- UV2 使用半精度,在 0…1 范围内应该没问题,但超出该范围太远可能会引入伪影。
用例提示
- 在查找 UV2 补丁文件时,CSP 会首先检查涂装文件夹,因此可以利用这一点来制作一些高级涂装。