Я запускаю следующий код для рисования прямоугольников с помощью функции GL_GREATER
, но вместо того, чтобы получить цвет самого дальнего прямоугольника от камеры, я получаю белый экран.
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_GREATER);
glOrtho(-1, 1, -1, 1, -1, 1);
glColor3f(1, 0, 0);
glPushMatrix();
glTranslatef(0, 0, -0.5);
glRectf(-1, -1, 1, 1);
glColor3f(0, 1, 0);
glTranslatef(0, 0, 1);
glRectf(-1, -1, 1, 1);
glColor3f(0, 0, 1);
glPopMatrix();
glRectf(-1, -1, 1, 1);
Так что яЯ ожидаю увидеть самый дальний цвет прямоугольника на экране, который является зеленым (что также странно, потому что zNear равен -1, а использование GL_LESS
рисует зеленый вместо красного - я не понимаю, почему так).однако, используя GL_GREATER
, я получаю белый экран вместо зеленого.Что мне здесь не хватает?