【问题标题】:Texture 2d resizing necessary in XNA?在 XNA 中需要调整纹理 2d 的大小吗?
【发布时间】:2012-07-25 23:49:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: xna resize texture2d


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多