XNA图像显得不连贯/模糊?

时间:2019-04-30 04:09:34

标签: c# image xna monogame

这是一个简单的问题,但是我有一个相当高质量的图像精灵。但是,当我将其加载到SpriteBatch中时,它看起来像这样:

enter image description here

何时应该看起来像这样:

enter image description here

这是怎么回事,我应该如何解决?

这是我加载SpriteBatch的方法:

   this.landers =
            Content.Load<Texture2D>("sprites/landers");

我有一个源矩形:

this.sprite = Rectangle(0, 0, 900, 900);

然后我画它:

sb.Draw(
            texture: this.landers,
            position: this.position,
            sourceRectangle: this.sprite,
            color: Color.White,
            rotation: this.rotation,
            origin: this.relativeOrigin,
            scale: 0.06f,
            effects: SpriteEffects.None,
            layerDepth: 0f
        );

1 个答案:

答案 0 :(得分:3)

在外部工具中调整图像的大小,选择最佳方法(最好是双三次,或者只是对发布的图像进行屏幕截图并对其进行裁剪和缩放),然后将其用作源图像。

缩放比例始终以1:1的比例显示最佳(更不用说保存的计算了)。 6%的缩放比例(使用在Monogame中实施的简单但快速方法)将具有与将图片缩放至其大小的〜16.66 ...倍(1666%)相似的“伪像”。当缩放比例在25%和400%之间时,源/目标矩形效果最佳。超出该范围的“伪像”往往是由于信息丢失或缺少信息而出现的。

如果需要更大(或更小)的图像,请创建一个预缩放到所需范围中心的辅助纹理。字体缩放也会发生相同的问题。

始终最好从较大的图像开始放大并缩小图像(在合理的范围内),来自较大图像的信息有助于抗锯齿,但缩放到超出特征分割范围(在您的情况下分隔线)将导致图像失真由于信息丢失而导致的图像显示。