我对OpenGL非常新,所以请耐心等待。 :)我正在通过NeHe的OpenGL教程,我已经开发了自己的第5课,你可以在原点周围旋转3D形状。我不确定我做错了什么,我几乎是逐行复制代码,但我看到表面上有奇怪的重叠。
有没有人对导致此类问题的原因有任何建议?
答案 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