我在 Xna 中有一个 2d 自上而下的游戏,它使用单个图像作为“竞技场”。该图像用作Texture2D,4096 * 1050,并且只有186kb作为png(该图形现在只是一个普通的占位符)。构建时,xnb 文件为 24 mb。那么问题来了,有没有什么办法可以显着减小纹理尺寸呢?
提前致谢
内容管道生成的 XNB 文件包含解压缩的图像数据,因此其大小将是纹理尺寸和位深度的简单函数。如果您希望文件大小更小,那么要么使用更小的纹理(也就是说,更少的像素;如果它们共同包含相同数量的像素,则无论您有 1 个纹理还是 100 个纹理都无关紧要)或使用存储每个像素的数据更少。您应该能够更改每个纹理的“纹理格式”选项(在内容处理器下)以调整其位深度。
但是,我会质疑这是否真的有必要。正如评论中所指出的,这真的不应该是什么大不了的事,特别是如果有问题的资产是你的游戏的竞争环境。这是手机游戏吗?
考虑在您的内容项目中选择您的 PNG,展开内容处理器,然后在纹理格式下,选择“DxtCompressed”。这将使用 DXT 压缩编译您的 XNB,从而显着减小大小。但是,它确实在一定程度上降低了质量。测试一下,看看你的想法。
在调试模式下,纹理 xnb 是未压缩的。
在发布模式下,xnb 被压缩。
您在发布模式下应该没有问题。
;)