OpenGL中的深度缓冲区

时间:2009-06-25 20:23:34

标签: opengl

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

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

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

我在每次平局开始时使用gluLookAt。这是问题的图像。蓝色矩形的y值高于绿色矩形。

alt text alt text

正如您在顶部图像中看到的,一些绿色矩形出现在蓝色矩形上方。知道为什么会这样,我能做些什么来修复它?它可能与我正在绘制矩形的顺序有关吗?

2 个答案:

答案 0 :(得分:12)

清除颜色缓冲区时,还要清除深度缓冲区吗?

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

你确定图像不正确吗?其中一些绿色方块实际上是
看起来比蓝色的要高。

答案 1 :(得分:7)

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