簡體   English   中英

XNA:縮小紋理 2D 抗鋸齒?

[英]XNA: Scaling down Texture 2D antialias?

我正在 XNA 中做一個項目,我正在使用一些相當大的紋理,我將它們作為 Texture2D 對象加載到游戲中,並在屏幕上繪制比它們加載時小得多。原因是我需要在不同的地方以各種不同的尺寸繪制它們,雖然我可以使用多種紋理來做到這一點,但這樣做是不切實際的。

我的問題是 XNA 在縮小這些 Texture2D 對象時似乎沒有消除它們的鋸齒。 我已經設定:

graphics.PreferMultiSampling = true;

並且

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

但無濟於事。 我還嘗試了各種涉及 GraphicsDevice 中的過濾器的事情,但老實說,我並不知道我在做什么。

顯然,我正在使用 spriteBatch 繪制它,但除此之外,我繪制它的方式沒有什么特別有趣的。

這是正在發生的事情以及我正在努力實現的(放大的)示例:

實際結果期望的結果

如您所見,XNA 在重新縮放圖像時不提供任何抗鋸齒功能。 有沒有辦法強制它這樣做,以使邊緣看起來更干凈?

你打電話給graphics.PreferMultiSampling = true; 在創建GraphicsDevice之前? 您必須在創建它之前將其打開,無論是在Game構造函數中還是在Initialize()中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM