Memory XNA使用索引PNG 8时是否使用更少的内存

Memory XNA使用索引PNG 8时是否使用更少的内存,memory,xna,png,Memory,Xna,Png,我正在做一个XNA项目,遇到了内存使用方面的问题。我很好奇,对某些纹理使用索引颜色PNG 8s与PNG 24s或PNG 32s是否会释放内存。这无疑使应用程序变小了,但我很好奇,XNA的内容管理器加载这些应用程序时,它们是否会以某种方式变得未压缩或充当无丢失图像。在我发布此问题后,有人立即向我指出Facebook上的此链接 显然,在XNA中,任何类型的PNG在内存中都会被解压,我应该考虑使用DXT。在我发布这个问题后,有人立即在Facebook上指向我的这个链接 显然,在XNA中,任何类型的

我正在做一个XNA项目,遇到了内存使用方面的问题。我很好奇,对某些纹理使用索引颜色PNG 8s与PNG 24s或PNG 32s是否会释放内存。这无疑使应用程序变小了,但我很好奇,XNA的内容管理器加载这些应用程序时,它们是否会以某种方式变得未压缩或充当无丢失图像。

在我发布此问题后,有人立即向我指出Facebook上的此链接


显然,在XNA中,任何类型的PNG在内存中都会被解压,我应该考虑使用DXT。

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

显然,在XNA中,任何类型的PNG在内存中都会被解压,我应该考虑使用DXT。

我最近也提出了类似的问题

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

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

虽然根本不支持托盘图像(如PNG8)或8位彩色图像,但有几种16位格式(
Bgr565
Bgra5551
Bgra4444
)。也有。它们以4:1的比例压缩,不透明DXT1除外,后者为6:1

你可以同时使用这两种方法。

我最近也问了一个类似的问题

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

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

虽然根本不支持托盘图像(如PNG8)或8位彩色图像,但有几种16位格式(
Bgr565
Bgra5551
Bgra4444
)。也有。它们以4:1的比例压缩,不透明DXT1除外,后者为6:1

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