Buffer de profundidade no OpenGL

Eu estou tentando desenhar uma série de retângulos usando o OpenGL, mas alguns dos que devem aparecer abaixo de um retângulo aparecem acima dele.

Para habilitar a função de profundidade que estou usando

<code>glClearDepth(1.0f);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
</code>

Eu estou usando gluLookAt no início de cada sorteio. Aqui está uma imagem do problema. Os retângulos azuis são posicionados com valores y mais altos que os retângulos verdes.

Como você pode ver na imagem superior, alguns dos retângulos verdes aparecem acima dos azuis. Alguma idéia do porquê isso está acontecendo e o que posso fazer para corrigir isso? Poderia ter algo a ver com a ordem em que estou desenhando os retângulos?

questionAnswers(2)

yourAnswerToTheQuestion