Буфер глубины в OpenGL

Я пытаюсь нарисовать серию прямоугольников, используя OpenGL, но некоторые из тех, которые должны появиться ниже прямоугольника, появляются над ним.

Для включения функции глубины я использую

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

Я использую gluLookAt в начале каждого розыгрыша. Вот изображение проблемы. Синие прямоугольники расположены с более высокими значениями y, чем зеленые прямоугольники.

alt text alt text

Как вы можете видеть на верхнем изображении, некоторые из зеленых прямоугольников появляются над синими. Есть идеи, почему это происходит, и что я могу сделать, чтобы это исправить? Может ли это быть как-то связано с порядком, в котором я рисую прямоугольники?

Ответы на вопрос(2)

Решение Вопроса

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Вы уверены, что изображение не правильное? Некоторые из этих зеленых квадратов на самом деле
выглядеть выше, чем синие.

окнами? Например, для использования glut вам может понадобиться: glutInitDisplayMode (GLUT_DEPTH | ....);

 02 сент. 2009 г., 16:35
Благодарю. Этот ответ спас мой день.
 25 июн. 2009 г., 23:16
вQGLFormat объект, вы должны быть в состоянии проверить, включен ли буфер глубины с помощьюdepth а такжеsetDepth методы.
 DHamrick25 июн. 2009 г., 22:49
Я использую qt для своего оконного инструментария. Я не знаю ни о какой подобной функции. Знаете ли вы, есть ли кто-то, кого я должен вызывать simmilar, чтобы перенастроить функцию.

Ваш ответ на вопрос