OpenGL中的深度缓冲

OpenGL中的深度缓冲,opengl,Opengl,我正在尝试使用OpenGL绘制一系列矩形,但是一些应该显示在矩形下方的矩形会显示在其上方 要启用我正在使用的深度函数 glClearDepth(1.0f); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); 我在每次抽签开始时都会使用GluLook。这是问题的图像。蓝色矩形的y值高于绿色矩形 如上图所示,一些绿色矩形出现在蓝色矩形的上方。知道为什么会发生这种情况吗?我能做些什么来解决它?这可能与我绘制矩形的顺序有关吗?您是否在使用的任何窗口系统中

我正在尝试使用OpenGL绘制一系列矩形,但是一些应该显示在矩形下方的矩形会显示在其上方

要启用我正在使用的深度函数

glClearDepth(1.0f);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
我在每次抽签开始时都会使用GluLook。这是问题的图像。蓝色矩形的y值高于绿色矩形


如上图所示,一些绿色矩形出现在蓝色矩形的上方。知道为什么会发生这种情况吗?我能做些什么来解决它?这可能与我绘制矩形的顺序有关吗?

您是否在使用的任何窗口系统中启用了深度缓冲区?例如,使用glut可能需要:glutInitDisplayMode(glut_DEPTH |..)

当您清除颜色缓冲区时,您是否也在清除深度缓冲区

glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位)

你确定图像不正确吗?一些绿色方块实际上

一定要比蓝色的看起来高。

我正在使用qt作为我的窗口工具包。我不知道有这样的功能。您知道我是否应该调用Similar to glut函数。在
QGLFormat
对象中,您应该能够检查深度缓冲区是否使用
depth
setDepth
方法启用。谢谢。这个答案救了我一命。