Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XNA中是否需要纹理2d大小调整?_Xna_Resize_Texture2d - Fatal编程技术网

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

XNA中是否需要纹理2d大小调整?,xna,resize,texture2d,Xna,Resize,Texture2d,想象一下,我有一张缩放为256x256的图片(XNA中的Texture2D),但有时我想在应用程序中使用尺寸为64x64的图片 我在常规的Windows窗体或WPF应用程序中了解到,当我必须调整图像大小时,我应该将其存储在字段中,以便只需调整一次大小。当在游戏循环中一次又一次地调整大小时,它会大大降低性能 我也必须在XNA中这样做吗?我什么也没找到。我可以在使用spritebatch绘制时调整纹理大小,但这与刚才解释的相同。我会在每一帧调整纹理的大小,而不是只在场中调整一次。我甚至不知道如果没有

想象一下,我有一张缩放为256x256的图片(XNA中的Texture2D),但有时我想在应用程序中使用尺寸为64x64的图片

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


我也必须在XNA中这样做吗?我什么也没找到。我可以在使用spritebatch绘制时调整纹理大小,但这与刚才解释的相同。我会在每一帧调整纹理的大小,而不是只在场中调整一次。我甚至不知道如果没有XNA中的spritebatch,如何调整纹理2D的大小。

没有理由创建原始纹理的调整大小副本。你想画多大都行。在现代图形硬件上,以不同于原始图像的大小绘制纹理基本上是免费的。

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

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