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" 往往会由于信息丢失或缺失而出现。
如果您需要更大(或更小)的图像,请创建一个预缩放到所需范围中心的辅助纹理。字体缩放也会出现同样的问题。
最好从较大的图像开始缩小(在合理范围内),较大图像的信息有助于抗锯齿,但缩放超出特征分割(在您的情况下是线条分离)会导致由于信息丢失导致图像显示失真。
这是一个有点简单的问题,但我有一个非常高质量的图像精灵。但是,当我将它加载到 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" 往往会由于信息丢失或缺失而出现。
如果您需要更大(或更小)的图像,请创建一个预缩放到所需范围中心的辅助纹理。字体缩放也会出现同样的问题。
最好从较大的图像开始缩小(在合理范围内),较大图像的信息有助于抗锯齿,但缩放超出特征分割(在您的情况下是线条分离)会导致由于信息丢失导致图像显示失真。