2013-05-08 45 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