【问题标题】:XNA: Scaling down Texture 2D antialias?XNA:缩小纹理 2D 抗锯齿?
【发布时间】:2012-04-06 15:41:20
【问题描述】:

我正在 XNA 中开发一个项目,我正在使用一些相当大的纹理,我将它们作为 Texture2D 对象加载到游戏中,并且在屏幕上绘制的内容比加载时要小得多。原因因为我需要在不同的地方以各种不同的尺寸绘制它们,虽然我可以使用多种纹理来做到这一点,但这样做是不切实际的。

我的问题是 XNA 在缩小这些 Texture2D 对象时似乎没有抗锯齿。我已经设置:

graphics.PreferMultiSampling = true;

还有

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

但无济于事。我还尝试了各种涉及 GraphicsDevice 中的过滤器的事情,但老实说,我并不真正知道我在做什么。

显然,我使用 spriteBatch 来绘制它,但除此之外,我绘制它的方式并没有什么特别有趣的地方。

这是正在发生的事情的(放大的)示例,以及我正在努力实现的目标:

如您所见,XNA 在重新缩放图像时不提供任何抗锯齿功能。有没有办法强制它这样做,以使边缘看起来更干净?

【问题讨论】:

    标签: c# xna antialiasing texture2d xbox


    【解决方案1】:

    在创建GraphicsDevice 之前,您是否在调用graphics.PreferMultiSampling = true;?您必须在创建之前打开它,在 Game 构造函数或 Initialize() 中。

    【讨论】:

    • 我在 Game 构造函数中调用它,在定义 GraphicsDeviceManager(显然)之后和调用 ApplyChanges() 之前。
    • 我也可以补充一下,不管我在哪里加,好像都没什么区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多