Hoe*_*loe 6 c# xna xbox antialiasing texture2d
我正在使用XNA中的一个项目,我正在使用一些相当大的纹理,我将其作为Texture2D对象加载到游戏中,并且在屏幕上绘制的内容比它们加载的要小得多.原因是我需要在不同的地方以各种不同的尺寸绘制它们,虽然我可以用多个纹理来做这个,但这样做是不切实际的.
我的问题是,在缩小它们时,XNA似乎不会对这些Texture2D对象进行抗锯齿处理.我已经设定:
graphics.PreferMultiSampling = true;
Run Code Online (Sandbox Code Playgroud)
并且
spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
Run Code Online (Sandbox Code Playgroud)
但无济于事.我也尝试过各种涉及GraphicsDevice过滤器的东西,但老实说,我并不知道自己在做什么.
显然,我正在使用spriteBatch绘制它,但除此之外,我绘制它的方式没什么特别有趣的.
这是一个(放大的)例子,说明正在发生的事情,以及我正在努力实现的目标:

如您所见,XNA在重新缩放图像时不提供任何抗锯齿功能.有没有办法可以强制它这样做,以使边缘看起来更干净?
您在创建graphics.PreferMultiSampling = true;之前调用吗?GraphicsDevice您必须在创建之前将其打开,无论是在Game构造函数中还是在Initialize().