索引的PNG 8s在XNA使用时会占用更少的内存

时间:2012-10-22 14:45:07

标签: memory xna png

我正在研究XNA项目并遇到涉及内存使用的问题。我很好奇如果使用索引颜色PNG 8s与PNG 24s或PNG 32s某些纹理可以释放任何内存。它肯定会使应用程序变小,但我很好奇,如果XNA的内容管理器加载它们,它们会以某种方式变为未压缩或充当无损图像。

2 个答案:

答案 0 :(得分:1)

answered最近也出现了一个类似的问题。

如果您想在分发游戏时节省空间,可以分发PNG文件(也可以使用jpeg)并使用Texture2D.FromStream加载它们。请注意,您必须自己处理预乘alpha等事情。

如果你想节省GPU上的空间(这也改善了纹理提取,因为传输的数据量较小),你可以使用较小的纹理格式。 this table中提供了支持的纹理格式列表。

虽然根本不支持托盘化图像(如PNG8)或8位彩色图像,但有几种16位格式(Bgr565Bgra5551Bgra4444) 。 DXT compressed formats也可用。除了不透明的DXT1(6:1)外,它们以4:1的比例压缩。

您可以同时使用这两种技术。

答案 1 :(得分:0)

有人在我发布这个问题之后立即向我指出了Facebook上的这个链接。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh855082%28v=vs.92%29.aspx

显然,在XNA中,任何类型的PNG在内存中都是未压缩的,我应该看一下使用DXT。