2012-01-16 119 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