通用 – UV2
汉化标题:通用 – UV2
原文标题:General – UV2
汉化更新时间:2026-01-14 14:19:23 +0800
英文原文最新更新时间:2023-10-26 15:03:55 -0300
对于一些额外的细节,您现在可以向某些网格添加次级 UV 映射,并使用它来覆盖纹理。例如,假设您正在开发一辆 F1 赛车,并且为其车身网格进行了展开,以便进行良好的 AO 烘焙,分布均匀的细节以及所有内容。您还想在上面添加一些贴纸,但是使用 2K 分辨率的 AO 纹理贴纸看起来很糟糕,而 4K 可能看起来有点过分。使用 UV2,您可以有一个完全专注于贴纸的单独展开,因此它们的单独纹理可以更有效地使用空间。
如何将 UV2 添加到 KN5
目前,使用现有的 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 首先检查皮肤文件夹,因此可用于创建一些高级皮肤。