2012-04-06 19 views
6

XNA'daki bir projede çalışıyorum ve biraz daha büyük dokular kullanıyorum, ki bu forma Texture2D nesneleri olarak yükleniyorum ve ekranda yüklendiğinden çok daha küçük bir çizim çiziyorum. Bu, onları farklı yerlerde farklı boyutlarda çizmem gerektiğidir ve bunu çoklu dokularla yapabildiğim halde, bunu yapmak pratik değildir.XNA: Doku 2D antialiasının küçültülmesi?

Sorunum, XNA'nın bu Texture2D nesnelerini aşağı ölçeklendirerek antialias görünmemesidir.

graphics.PreferMultiSampling = true; 

ve ayrıca

spriteBatch.Begin(SpriteBlendMode.AlphaBlend); 

Ama boşuna: Ben belirledik. Ayrıca, GraphicsDevice'deki filtreleri içeren çeşitli şeyleri denedim, ancak ne yaptığımı bilmeden dürüst olmak gerekirse.

Açıkçası, bunu bir spriteBatch kullanarak çiziyorum, ama bir kenara çizdiğim şekilde özellikle ilginç olan hiçbir şey yok. İşte

bitenlerden bir (büyütülmüş) örneği olduğunu ve ne yapmaya çalışıyorum olur: Sen rescaling zaman XNA herhangi kenar yumuşatma sağlamıyor görebileceğiniz gibi

Actual ResultDesired Result

görüntü. Kenarların daha temiz görünmesini sağlamak için bunu yapmaya zorlayabileceğim bir yol var mı?

cevap

2

GraphicsDevice önce graphics.PreferMultiSampling = true; çağırıyor musunuz? Oluşturulmadan önce, Game yapıcısında veya Initialize()'da açmanız gerekir.

+0

GraphicsDeviceManager'ı (açık bir şekilde) tanımladıktan sonra ve ApplyChanges() 'ı çağırmadan önce Oyun kurucusunda arıyorum. – Hoeloe

+0

Ayrıca, nereye eklediğim önemli değil, hiç farketmeyecek gibi görünüyor. – Hoeloe