0

想象一下,我有一张名为 256x256 的图片(XNA 中的 Texture2D),但有时我想在应用程序中使用 64x64 大小的图片。

我在常规的 Windows 窗体或 WPF 应用程序中了解到,当我必须调整图像大小时,我应该将其存储在一个字段中,这样我只需调整一次大小。在游戏循环中一遍又一遍地调整大小时,它会大大降低性能。

我也必须在 XNA 中这样做吗?我没有找到任何关于它的东西。我可以在使用 spritebatch 绘制时调整纹理的大小,但这与刚才解释的相同。我会在每一帧都调整纹理的大小,而不仅仅是在现场调整一次。我什至不知道如何在 XNA 中调整没有 spritebatch 的 texture2d 的大小。

4

2 回答 2

0

没有理由创建原始纹理的调整大小副本。只需将其绘制成您想要的任何尺寸即可。在现代图形硬件上,以与原始图像不同的尺寸绘制纹理基本上是免费的。

于 2012-07-25T15:34:47.103 回答
0

使用现代硬件,您很少需要手动调整纹理大小,硬件会自动完成所有这些工作。但是,您必须确保您使用的是 mipmapping,否则结果将非常混叠。

如果在当前纹理上启用了 mipmapping,它将在加载时调整大小。只需确保启用三线性过滤渲染状态并绘制您需要的任何尺寸,它就会自动使用最佳调整大小的纹理的混合。

于 2012-07-25T15:47:56.770 回答