C# 如何禁用深度缓冲区?

C# 如何禁用深度缓冲区?,c#,windows-phone-7,xna,xna-4.0,depth-buffer,C#,Windows Phone 7,Xna,Xna 4.0,Depth Buffer,我不认为RenderState是GraphicsDevice类中的成员,该类中的函数用于禁用深度缓冲区。有人知道这个新的4.0API是如何实现的吗 如果我能在某个地方访问完整的RenderState-类,那就太好了GraphicsDevice似乎得到了一些,但不是全部 啊。。我会将GraphicsDevice.DepthStencilState设置为DepthStencilState的一个实例,并设置任意数量的属性。看起来,RenderState被分成了许多其他状态。我以前在GraphicsDe

我不认为
RenderState
GraphicsDevice
类中的成员,该类中的函数用于禁用深度缓冲区。有人知道这个新的4.0API是如何实现的吗


如果我能在某个地方访问完整的
RenderState
-类,那就太好了
GraphicsDevice
似乎得到了一些,但不是全部

啊。。我会将
GraphicsDevice.DepthStencilState
设置为
DepthStencilState
的一个实例,并设置任意数量的属性。看起来,
RenderState
被分成了许多其他状态。我以前在
GraphicsDevice
中查找单个属性,但现在它们似乎组织得更好,更便于状态管理

depthState = new DepthStencilState();
depthState.DepthBufferEnable = true; /* Enable the depth buffer */
depthState.DepthBufferWriteEnable = true; /* When drawing to the screen, write to the depth buffer */

GraphicsDevice.DepthStencilState = depthState;

对但请确保创建状态对象一次(而不是在绘制方法中)。有关详细信息,请阅读Shawn。还要记住,有许多预构建的状态对象涵盖了许多常见场景。在这种情况下,可以使用DepthStencilState.None禁用深度缓冲,使用DepthStencilState.Default启用写入(如这里的示例所示)。