我正在尝试使用OpenGL绘制一系列矩形,但是应该出现在矩形下方的一些矩形出现在它上面。
启用我正在使用的深度功能
glClearDepth(1.0f);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
我在每次平局开始时使用gluLookAt。这是问题的图像。蓝色矩形的y值高于绿色矩形。
正如您在顶部图像中看到的,一些绿色矩形出现在蓝色矩形上方。知道为什么会这样,我能做些什么来修复它?它可能与我正在绘制矩形的顺序有关吗?
答案 0 :(得分:12)
清除颜色缓冲区时,还要清除深度缓冲区吗?
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
你确定图像不正确吗?其中一些绿色方块实际上是
看起来比蓝色的要高。
答案 1 :(得分:7)
您在使用的窗口系统中是否启用了深度缓冲区?例如,使用过剩可能需要:glutInitDisplayMode(GLUT_DEPTH | ....);