После включения глубинного тестирования в OpenGL весь мой экран пуст (возвращается к чистому цвету) - почему? - PullRequest
1 голос
/ 14 декабря 2011

В моем графическом приложении C ++, использующем OpenGL и GLUT, я хочу включить глубинное тестирование с помощью

glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);

Тем не менее, эти две строки кода очищают мой экран, который теперь является просто чистым цветом. Мне было интересно, почему.

У меня просто должно быть несколько примитивных твердых сфер и кубов.

Ответы [ 2 ]

10 голосов
/ 14 декабря 2011

Звучит так, будто вы забыли очистить буфер глубины и, таким образом, проваливаете тест глубины из-за того, что ранее существующий мусор находился в памяти буфера глубины. Попробуйте добавить GL_DEPTH_BUFFER_BIT к вашему вызову glClear (), вот так:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Удачи!

0 голосов
/ 27 мая 2017

Убедитесь, что вы также рисуете между значениями Z Near и Z Far после включения проверки глубины.

...