OpenGL Cube 奇怪的错误

Posted

技术标签:

【中文标题】OpenGL Cube 奇怪的错误【英文标题】:OpenGL Cube weird bug 【发布时间】:2012-11-12 12:27:45 【问题描述】:

我在 LWJGL、OpenGL 中渲染一个简单的 VBO 立方体。 6 个具有正确法线、顶点和 RGB 颜色的四边形。但是,我遇到了一个奇怪的错误。

关于什么可能导致此错误的任何想法?

谢谢!

编辑:立方体绘制代码:

glPushMatrix();
              GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertex_buffer_id);
              GL11.glVertexPointer(3, GL11.GL_FLOAT, 40, 0);
              GL11.glNormalPointer(GL11.GL_FLOAT, 40, 12);
              GL11.glColorPointer(4, GL11.GL_FLOAT, 40, 24);
              GL11.glDrawArrays(GL11.GL_QUADS, 0, vertex_data_array.length / 10);
              glPopMatrix();

【问题讨论】:

请发布您的代码。只是你画立方体的地方 【参考方案1】:

发现问题。我的 zNear 设置为 0.00001。出于某种原因,当我将其更改为 0.01 时它运行良好。谢谢大家:)

【讨论】:

可能发生的情况是,如果您不剔除背面,取决于您用于近剪裁平面和远剪裁平面的值,您可能会在 zbuffer 中遇到一些不精确,这将导致后面的立方体面通过靠近边缘的前面的面流血。在此处查看第 12.050 节:opengl.org/archives/resources/faq/technical/depthbuffer.htm

以上是关于OpenGL Cube 奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章

C ++ OpenGL Cube未显示在屏幕上

使用 SDL_CreateWindow 时出现 SDL OpenGL 分段错误

MS Windows 中的 QT 和原生 OpenGL 支持

OpenGL rubiks cube - 用鼠标旋转面部

OpenGL Eight (Cube)

CORS 奇怪的行为