Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Depth Buffer in OpenGL

Tags:

opengl

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.

alt textalt text

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?

like image 503
DHamrick Avatar asked Jun 25 '09 20:06

DHamrick


1 Answers

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.

like image 96
Rhythmic Fistman Avatar answered Oct 06 '22 01:10

Rhythmic Fistman