XNA SpriteBatch忽略我的筛选选项?

XNA SpriteBatch忽略我的筛选选项?,xna,xna-4.0,sprite,Xna,Xna 4.0,Sprite,我对XNA SpriteBatch对象有问题 当我在其他元素前面绘制半透明的元素时,其他元素将完全隐藏,直到半透明元素完全透明为止。这真的很令人沮丧,因为我正在尝试做一个淡入淡出的效果 Batch.Instance.SpriteBatch.Begin(SpriteSortMode.Deferred,BlendState.AlphaBlend,samplestate.LinearClamp,DepthStencilState.Default,RasterizerState.CullNone,nul

我对XNA SpriteBatch对象有问题

当我在其他元素前面绘制半透明的元素时,其他元素将完全隐藏,直到半透明元素完全透明为止。这真的很令人沮丧,因为我正在尝试做一个淡入淡出的效果

Batch.Instance.SpriteBatch.Begin(SpriteSortMode.Deferred,BlendState.AlphaBlend,samplestate.LinearClamp,DepthStencilState.Default,RasterizerState.CullNone,null)

这就是我开始SpriteBatch的方式。如您所见,我将其设置为CullNone,但它似乎仍然执行Z消隐


如何防止这种情况发生?

Z-culling是
DepthStencilState
的属性。要关闭它,您需要使用
DepthStencilState.None
。由光栅化状态执行的消隐是按三角形缠绕顺序执行的

不能使用具有透明度的深度缓冲区。您可以使用alpha测试作为“alpha切口”的解决方案。但是,对于半透明对象(如淡入淡出时),仅可选择按深度顺序绘制它们

我已经向你建议过了。你从来没有回答过我的问题:你到底为什么要那样画你的GUI


有关详细信息:

Z-culling是
DepthStencilState
的一个属性。要关闭它,您需要使用
DepthStencilState.None
。由光栅化状态执行的消隐是按三角形缠绕顺序执行的

不能使用具有透明度的深度缓冲区。您可以使用alpha测试作为“alpha切口”的解决方案。但是,对于半透明对象(如淡入淡出时),仅可选择按深度顺序绘制它们

我已经向你建议过了。你从来没有回答过我的问题:你到底为什么要那样画你的GUI

有关详细信息: