我正在使用XNA 3.1绘制2D HUD会渲染我的3D模型?
我最近使用Components.Add(myComponent)
在我的游戏中创建了2D平视显示器(HUD)。 HUD看起来很好,显示了2D地图,十字线和帧率计数器。事情是,每当HUD出现在屏幕上时,游戏中的3D对象都不再正确绘制。
离我的玩家更远的东西可能会在距离更近的地方得到,当我走过它们时,模型有时会失去定义。当我移除HUD时,所有绘制都正常。
是否有任何已知的问题需要注意?我应该如何在3D游戏区域绘制2D HUD?
这是它看起来就像没有GameComponent
:
这里是它的外观与GameComponent
(在这种情况下,它只是一些文字离屏幕的左上角,显示帧率)注意到后面的树是如何出现在树前更接近摄像机:
HUD渲染代码中的某处会更改流水线状态,以后不会恢复。确保绘制模型时设置*所有必要的状态*。这包括混合/光栅化器/深度模板状态,视口,着色器,采样器,输入布局,深度缓冲区和渲染目标。你能提供一个截图来缩小问题的范围吗? – Lucius 2013-02-18 15:00:44
感谢您的回复。我一回到工作岗位就会提供屏幕截图。 – PaulG 2013-02-18 15:10:07
在绘制模型之前,尝试'GraphicsDevice.DepthStencilState = DepthStencilState.Default;'。 – Lucius 2013-02-19 00:39:39