代码之家  ›  专栏  ›  技术社区  ›  DHamrick

OpenGL中的深度缓冲区

  •  9
  • DHamrick  · 技术社区  · 17 年前

    我试图用OpenGL绘制一系列的矩形,但是应该出现在矩形下面的一些矩形会出现在它上面。

    启用我正在使用的深度功能

    glClearDepth(1.0f);
    glDepthFunc(GL_LESS);
    glEnable(GL_DEPTH_TEST);
    

    我在每一次抽签的开始都用了Glulook。这是问题的图像。蓝色矩形的Y值高于绿色矩形。

    alt text alt text

    正如你在上图中看到的,一些绿色矩形出现在蓝色矩形的上方。知道为什么会发生这种情况吗?我能做些什么来解决它?它能和我画矩形的顺序有关吗?

    2 回复  |  直到 17 年前
        1
  •  12
  •   Gordon Childs    17 年前

    当你清除你的颜色缓冲器时,你也清除深度缓冲器吗?

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    你确定图像不正确吗?实际上有些绿色方块
    一定要比蓝色的高。

        2
  •  7
  •   Christopher    17 年前

    您是否在正在使用的任何窗口系统中启用了深度缓冲区?例如,使用GLUT可能需要:GLUTinitDisplayMode(GLUT_DEPTH_..);

    推荐文章