2013-05-08 42 views
0

我试图在XNA中实现地形碰撞,所以我添加了一些动态文本,允许我测试计算是否正确。一切都被渲染得很好,直到我叫:XNA 4.0:由SpriteBatch造成的地形故障

spriteBatch.Begin(); spriteBatch.End();

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend); spriteBatch.End();

这些指示地形毛刺一点点,当我从我的代码都删除这两条线是回正常(但这意味着我不能绘制平视显示器)

任何人都有任何线索可以导致什么,我应该如何解决它?

屏幕:

with sprite batch on

with sprite batch off

回答

0

它由于spritebatch改变GraphicsDevice的状态...

图纸应保存正确的设置绘制地形之前...

通常你必须设置正确的RasterizerState和DepthStencilState 。

常见的值是RasterizarState.CullNone和DepthStencilState.Default

+0

原来我存储RasterizerState但我缺少另外一个,这条线做的工作:'device.DepthStencilState = DepthStencilState.Default;'谢谢提示 – thormond 2013-05-09 10:58:18