AlphaTestEffect.Projection property

本文关键字:property Projection AlphaTestEffect | 更新日期: 2023-09-27 18:20:37

我正在复习本教程,根据我想要传递的像素类型混合不同的纹理:http://www.crappycoding.com/tag/xna/page/2/

到目前为止,我想我已经理解了整个概念,除了创建AlphaTestEffect对象时的几行,因为对它的解释很少,我也不知道它是用来做什么的,也不知道为什么会这样设置。

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

有人能解释一下这些必要性,它们是做什么的,它们的用途是什么吗?我希望不要花太多时间,我的问题也不傻。

欢呼Lucas

AlphaTestEffect.Projection property

因为他使用的是自定义效果,而不是默认的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/