最近,我使用KTX2的cubemap纹理实现了一个skybox。但是,我很难从图像列表中创建一个cubemap文件。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样品资产的现有RGBA映像,它们在我的演示代码中工作。所以我只是在为自己制作的地图而挣扎。
我尝试过寻找这个错误,但是没有用--有什么建议吗?
附加问题:几个KTX文件,我测试了包含的mipmap,有什么逻辑的理由,天空框纹理要映射吗?
发布于 2021-12-01 17:59:30
使用toktx将非RGB源文件扩展到RGBA是不可能的。对于Vulkan存储库中的多维数据集映射,我使用了PowerVR纹理工具。该工具有一个小向导,用于从大小输入图像(包括jpg文件)创建cubemap,然后您可以使用它将cubemap编码成不同的格式,包括RGBA。如果您想用固定的颜色填充alpha,或者从不同的jpg加载它,也可以使用PowerVR纹理工具。
https://stackoverflow.com/questions/70145023
复制相似问题