纹理2d在XNA中需要调整大小?

时间:2012-07-25 15:29:25

标签: xna resize texture2d

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

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

我是否也必须在XNA中使用它?我没有发现任何相关信息。我可以在使用spritebatch进行绘制时调整纹理大小,但这与刚才解释的相同。我会每帧调整纹理大小,而不是在场中调整一次。在XNA中,我甚至不知道如何在没有spritebatch的情况下调整texture2d的大小。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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