2011-10-06 60 views
1

我在Xna中有一个2d自上而下的游戏,它使用单个图像作为'竞技场'。该图像用作Texture2D,4096 * 1050,并且只有186kb作为png(图形现在只是一个普通的占位符)。构建时,xnb文件为24 MB。 所以,问题是,有没有办法显着减少纹理尺寸?在Xna中,我如何减少纹理的大小?

预先感谢

+0

不要使用4069x1050的图像 – thedaian

+0

那么我该如何创建一个4096 * 1050的图像呢?将多个较小的纹理缝合在一起会是更有效的尺寸方式吗? – fatalwin

+0

即使你做了,它可能会是一个相似的大小。你有什么理由减少纹理的大小? 24MB不是那么大。 –

回答

1

由内容管线中产生的XNB文件包含解压缩的图像数据,因此它的尺寸将是纹理的尺寸和位深度的一个简单函数。如果您希望文件大小更小,则可以使用较小的纹理(也就是说,更少的像素;如果它们共同包含相同数量的像素,是否有1个纹理或100是无关紧要的),或者使用存储的纹理格式每像素数据少。您应该可以更改每个纹理的“纹理格式”选项(在内容处理器下)以调整其位深度。

但我会质疑这是否真的有必要。正如评论中指出的那样,这真的不应该成为一笔大交易,特别是如果有问题的资产是您的游戏的竞技场。这是一款手机游戏吗?

0

在调试模式下纹理xnb是未压缩的。

在发行模式下,xnb被压缩。

在发布模式下你不应该有问题。

;)

1

考虑您的内容项目中选择您的PNG,扩大内容处理器,并且在纹理格式,选择 “DxtCompressed”。这将使用DXT压缩来编译您的XNB,从而大大减小尺寸。但是,它的确会降低质量。测试一下,看看你的想法。