在XNA 4.0中绘制3D模型?

时间:2011-10-16 15:51:08

标签: c# graphics xna 3d xna-4.0

我正在绘制几个模型,使用以下代码设置渲染状态:

GraphicsDevice.BlendState = BlendState.Opaque;
GraphicsDevice.DepthStencilState = DepthStencilState.Default;
GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise;
GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;

某些模型渲染不正确。如果我改变一行代码:

GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead;

现在,其他人无法正常工作。我在每个代码段中使用了2个代码,但它仍然不起作用。

如何修复此渲染问题?


截图:

我首先是绘制地面,然后是“道路”模型。

顶部:http://i.stack.imgur.com/xH8qp.png

当我改变相机的角度时......:http://i.stack.imgur.com/Nbw3m.png

1 个答案:

答案 0 :(得分:3)

您的问题似乎是Z-Fighting,这是一个问题,原因是尝试在与相机相同的距离处渲染2个或更多的多边形。

绘制模型时,可以禁用Z缓冲区。 DepthStencilState.None