未压缩纹理的最佳图像格式?

时间:2009-02-10 09:08:13

标签: image textures

我正在选择一种图像格式,用作所有内部纹理的存储格式。 该格式将用作源格式,从中生成不同平台和配置的压缩纹理,因此需要涵盖所有可能的纹理类型(2D,立方体,volymetric,不同数量的mip-maps,浮点像素格式,等)并完全无损。 此外,格式必须能够保留一些元数据。

目前使用了自定义格式,但是对于艺术家来说,通常可用的格式更容易使用,因为它可以在大多数图像编辑器中查看。

我曾考虑使用DDS,但据我所见,此格式不支持元数据。

所有建议都赞赏!

7 个答案:

答案 0 :(得分:5)

根据您的要求,您应该使用自制格式。除了支持体积和立方体纹理的DDS之外,我不知道任何图像格式。不幸的是,DDS不支持元数据。

你能找到的最接近的是TIFF。它不直接支持立方体贴图或体积纹理,但它支持任意数量的子图像。这样,您可以将子图像重新用作切片或立方体边。

TIFF也对自定义元数据有很好的支持。 libtiff图像读/写库工作得很好。如果你来自OO方面,它看起来有点陈旧,但它完成了它的工作。

尼尔斯

答案 1 :(得分:2)

当偷看各种游戏资源时,我发现大多数都在TGA

中存储纹理(我不知道它们是否被压缩)

答案 2 :(得分:1)

坚持与艺术家合作的任何事情。

  • 如果您是Windows / Mac商店并使用 photoshop坚持使用.psd
  • 如果您是unix商店并使用gimp 坚持.xcf

这些格式将存储图层以及艺术家需要和习惯的所有内容。 由于您的艺术家将创造大量资产,使他们的生活尽可能简单, 即使这意味着要写一些额外的代码。

如果原生格式(psd / xcf)不支持,则将元数据(无论可能是什么)放在“沿着”图像的某处。

对于像立方体贴图这样的东西,mipmap(如果不是由转换器生成的话)坚持命名guidlines或guidlines如何将它们放入一个文件中。

根据您用来创建体积内容的工具,只需坚持使用该工具原生格式。

为目标编写自定义格式通常是个好主意, 为艺术家写自定义格式导致混乱......

答案 3 :(得分:1)

我对DDS的经验是,它是一种记录不完整且难以使用的格式,并且提供的优势很少。通常为每个图像类存储一个主文件更简单,该图像类具有对构成它的源图像的引用(即,立方体贴图的6个面,体积纹理的任意数量的切片)以及任何其他有用的元数据。将元数据保存在单独的文件(或数据库)中总是一个好主意,因为你不想在进行搜索,填充浏览器等时加载大量图像。这也是有意义的。从你的“元格式”(立方体,体积...)中分离你的源图像格式(tiff,tga,jpeg,dds ...)因为你可能会发现你需要使用有损压缩来支持HDR格式或者非常大的源卷数据。

答案 4 :(得分:0)

答案 5 :(得分:0)

对于支持任意元数据和多个帧的格式,TIFF可能是您最接近的赌注,但我认为您最好将资产(在本例中为图像)与它们在您的转换和利用方式中分开发动机。

以32位PNG格式保留图像,并将类型和元信息放入XML中。这样可以使您的数据易于查看,可读和可编辑。模糊的自定义格式适用于引擎,而非人。

答案 6 :(得分:0)

作为替代解决方案,可能会花一些时间为您的文件格式编写Free Image Editor插件?我之前从未这样做过,所以我不知道所涉及的工作,但是有大量的示例代码供你使用。