我正在绘制几个模型,使用以下代码设置渲染状态:
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
答案 0 :(得分:3)
您的问题似乎是Z-Fighting,这是一个问题,原因是尝试在与相机相同的距离处渲染2个或更多的多边形。
绘制模型时,可以禁用Z缓冲区。 DepthStencilState.None