读书人

OpenGL三维图形中等深度面渲染有关问题

发布时间: 2013-12-11 16:44:13 作者: rapoo

OpenGL三维图形中等深度面渲染问题
最近在用OpenGL绘制三维光栅图形,遇到了下面一个问题,如图
OpenGL三维图形中等深度面渲染有关问题
OpenGL三维图形中等深度面渲染有关问题
大立体梯形A包含小立体梯形B,高均沿z轴,且A和B的底面都是在同一平面内,但渲染的时候就出现了图中的问题,不知道紫蓝色部分从哪跑出来的,有谁知道这个怎么解决么?先谢谢了!
下面是关于深度缓存的设置且绘制时对深度缓存进行了clear:

CsGL.OpenGL.GL.glClearDepth(1.0f);
CsGL.OpenGL.GL.glDepthFunc(CsGL.OpenGL.GL.GL_LEQUAL);
CsGL.OpenGL.GL.glEnable(CsGL.OpenGL.GL.GL_BLEND);
CsGL.OpenGL.GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
CsGL.OpenGL.GL.glEnable(CsGL.OpenGL.GL.GL_DEPTH_TEST); //启用深度缓存

[解决办法]
精度问题产生的 z fighting, 解决办法:1.最好自己把里面看不见的东西裁剪掉;2. 两个面之间隔开一点

[解决办法]
去掉阴影

读书人网 >C++

热点推荐