2012-01-16 41 views
1

我期待在本教程中混合基於該類型的像素不同的紋理我想通過: http://www.crappycoding.com/tag/xna/page/2/AlphaTestEffect.Projection財產

,至今我hink我理解的整個概念,除了幾行在創建AlphaTestEffect對象時,由於對它給出的解釋很少,我不知道它的存在以及它爲什麼會這樣設置。

Matrix projection = Matrix.CreateOrthographicOffCenter(0, PlanetDataSize, PlanetDataSize, 0, 0, 1); 
Matrix halfPixelOffset = Matrix.CreateTranslation(-0.5f, -0.5f, 0); 

alphaTestEffect.Projection = halfPixelOffset * projection; 

請問有人能解釋這些瑕疵,他們做什麼以及他們是幹什麼的?我希望它不會花費太多時間,我的問題不是一個愚蠢的問題。

歡呼 盧卡斯

回答

0

因爲他是用一個自定義效果,而不是默認的SpriteBatch之一,他必須確保投影以同樣的方式作爲默認的(或者說,他正在用同樣的使一切都很好玩)。

http://blogs.msdn.com/b/shawnhar/archive/2010/04/05/spritebatch-and-custom-shaders-in-xna-game-studio-4-0.aspx

,如果你稍微向下滾動它的解釋有:

「此代碼配置BasicEffect複製默認的SpriteBatch座標系:」

默認SpriteBatch相機是一個簡單的正投影半像素偏移以更好地顯示2D紋理。這可以在這裏解釋:

http://drilian.com/2008/11/25/understanding-half-pixel-and-half-texel-offsets/

+0

非常感謝!!!! – Lucas 2012-01-16 15:30:37