Reputation: 8488
I am trying to draw a series of rectangles using OpenGL but some of the ones that should appear below a rectangle appear above it.
To enable the depth function I am using
glClearDepth(1.0f);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
I am using gluLookAt at the begining of each draw. Here is an image of the problem. The blue rectangles are positioned with higher y values than the green rectangles.
As you can see in the top image some of the green rectangles appear above the blue ones. Any idea why this is happening and what I can do to fix it? Could it have something to do with the order that I'm drawing the rectangles?
Upvotes: 9
Views: 21510
Reputation: 36072
When you clear your colour buffer are you also clearing the depth buffer?
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Are you sure the image isn't correct? Some of those green squares actually
do look higher than the blue ones.
Upvotes: 12
Reputation: 9084
Did you enable the depth buffer in whatever windowing system you are using? For example, using glut you might need to: glutInitDisplayMode(GLUT_DEPTH | ....);
Upvotes: 7