如何使用 TOKTX 从单独的图像创建 KTX2 立方体贴图纹理

How to create a KTX2 cubemap texture from separate images using TOKTX

我最近一直在使用 KTX2 立方体贴图纹理实现天空盒。但是,我正在努力从图像列表中创建立方体贴图文件。 SDK提供TOKTX工具创建文件:

toktx --t2 --target_type RGBA --cubemap skybox.ktx2 posx.jpg negx.jpg posy.jpg negy.jpg posz.jpg negz.jpg

据我所知,应该 生成包含 RGBA 组件的具有 6 个面(或 Vulkan 术语中的阵列层)的 KTX2 图像。

但是我收到以下错误:

toktx: "negx.jpg" has a different colortype_e (component count) than preceding files.

图像之间似乎没有任何差异。此外,图像的顺序似乎并不重要,在所有情况下,第二张图像都会出现相同的错误。如果我为每个参数使用 相同的 图像,我什至会收到错误消息。

如果我删除 --target_type RGBA 参数,则会生成文件,但当然它不再具有 alpha 通道。我 可以 对图像进行预处理以注入 alpha 通道,但那样一来就使使用 KTX 变得有点多余了。

最后,我尝试了 Vulkan Samples Assets 中现有的 RGBA 立方体贴图图像,它们在我的演示代码中有效。所以我只是在努力自己构建立方体贴图。

我尝试搜索此错误但无济于事 - 有什么建议吗?

额外问题:我针对包含的 mipmap 测试的几个 KTX 立方体贴图文件,天空盒纹理被 mipmap 是否有任何合乎逻辑的原因?

toktx 无法将非 RGB 源文件扩展为 RGBA。对于 Vulkan 存储库中的立方体贴图,我使用了 PowerVR texture tools。该工具有一个小向导,可以根据大小输入图像(包括 jpg 文件)创建立方体贴图,然后您可以使用它将立方体贴图编码为不同格式,包括 RGBA。如果您想用固定颜色填充 alpha 或从不同的 jpg 加载它,也可以使用 PowerVR 纹理工具。