XNA 图像出现 clippy/blurry?

XNA images appear clippy/blurry?

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

当它应该看起来像这样时:

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

这是我加载 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 比 1 的比例看起来最好(更不用说保存的计算了)。 6% 的缩放(使用简单但 快速 方法,如在 Monogame 中实现的那样)将具有与将图像缩放到 ~16.66... 倍(1666%)相似的 "artifacts"它的大小。 source/destination 矩形在 25% 到 400% 之间缩放时效果最佳。超出该范围 "artifacts" 往往会由于信息丢失或缺失而出现。

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

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