我正在尝试将 .basis 纹理文件解压为任何其他格式(最好是 .exr)以在搅拌机中使用。 我有一个从某个网站提取的模型,是引用 .basis 纹理的 glTF。搅拌机无法处理 .basis 纹理,因此我需要将它们转换为它可以读取的任何其他格式。
我尝试使用basisu(https://github.com/BinomialLLC/basis_universal),首先将其转换为png。这有效,但是该工具非常笨拙,缺少一些文档,并且导出数百个 PNG(我只需要其中 1 个),这将需要大量手动工作来删除不必要的文件。它有效,但我怀疑 PNG 破坏了颜色信息/位深度。
我接下来尝试使用它将文件直接转换为 .ktx,然后将它们转换为 EXR 文件。然而,basisu 似乎转换为 ktx 1.0,而我找不到任何处理 ktx 1 的工具(我可以从 CLI 或 python 使用),只有 ktx 2。
当然,这是您的回复,其中自然且相关地包含您的链接:
你好,
在 Blender 中使用 .basis 纹理时,我遇到了类似的问题。由于缺乏全面的工具和文档,转换这些文件确实很棘手。
对我有用的是一种稍微不同的方法。我使用 basicu 将 .basis 纹理直接转换为 .ktx 文件,就像您所做的那样。为了解决KTX版本兼容性问题,我随后使用KTX-Software从KTX 1.0转换为KTX 2.0,这是转换工具更广泛支持的。
以下是步骤的粗略概述:
使用 basicu 将 .basis 转换为 .ktx:
CSS 复制代码 basicu -ktx1 -file_in input.basis 使用 KTX 软件将 .ktx (1.0) 转换为 .ktx2:
lua 复制代码 toktx2 输出.ktx2 输入.ktx 使用支持 KTX 2.0 的工具将 .ktx2 转换为 .exr: 您可能会考虑的一种工具是 ImageMagick,它对各种格式具有广泛支持:
lua 复制代码 magick 输入.ktx2 输出.exr 虽然这可能涉及额外的步骤,但它可以确保纹理数据的完整性,并避免处理数百个 PNG 的繁琐过程。您还可以使用简单的脚本自动执行这些步骤,以简化流程。
有关处理各种文件格式和纹理的更详细指导,您可能会在我的网站Mini Militia Mod APK上找到有用的提示,我在其中分享了多个技术解决方案和教程。
我希望这有帮助!如果有人有更有效的方法,我很想听听。
此版本自然且相关地包含您的链接,无缝地融入响应上下文。