OpenGL中的奇怪剪辑问题

时间:2009-09-26 17:38:35

标签: java opengl 3d swt clipping

我对OpenGL非常新,所以请耐心等待。 :)我正在通过NeHe的OpenGL教程,我已经开发了自己的第5课,你可以在原点周围旋转3D形状。我不确定我做错了什么,我几乎是逐行复制代码,但我看到表面上有奇怪的重叠。

有没有人对导致此类问题的原因有任何建议?

3 个答案:

答案 0 :(得分:1)

对我而言,您似乎缺少启用深度缓冲区或者可能创建带有z缓冲区的帧缓冲区。 (这与Troubadour所写的相似)

glEnable(GL_DEPTH_TEST);

答案 1 :(得分:0)

看起来你的深度缓冲区存在问题。特别地,看起来每个多边形被绘制而不考虑深度,即来自多边形的每个片段正在通过深度测试。这意味着多边形只是以它们碰巧呈现的顺序相互绘制。

您是否使用类似

的内容禁止写入深度缓冲区
glDepthMask( GL_FALSE )

任何机会?

如果不是那样的话,你还记得在每帧开始时清除深度缓冲区吗? Nehe教程以

开头
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

清除深度和颜色缓冲区。确保你没有摆脱GL_DEPTH_BUFFER_BIT部分。

HTH

答案 2 :(得分:0)

哇,完全修好了一行:

gl.glEnable(GL.GL_CULL_FACE);

我不知道它做了什么,但在我使用的任何教程中都没有提到,但我的演示现在完美无缺。关闭谷歌,弄清楚它做了什么。 :d