Задняя сторона полигонов в OpenGL
В OpenGL вы можете рисовать только полигоны с обратной стороны, только полигоны с передней стороны или оба. Если вы визуализируете сетку треугольника коллектора, то очистите буфер кадра, но не буфер глубины, а затем снова визуализируйте только полигоны, обращенные назад. Что ожидаете увидеть?
Я думаю, что следующий ответ, данный мне, неправильный:
Вы должны увидеть обратные треугольники. Первый проход рендеринга приведет к тому, что буфер глубины будет иметь значения глубины треугольников, которые обращены вперед. На втором проходе рендеринга вы визуализируете обратные треугольники, следовательно, те, которые имеют наибольшее значение глубины. Каждый растровый треугольник будет иметь значение глубины по сравнению с текущим значением глубины для этого пикселя. Поскольку в буфере глубины установлены все ближайшие значения глубины (малые значения), но он различает самые дальние значения глубины (большие значения), обратные треугольники будут визуализированы ".
Но я думаю, что ответ:
Так как буфер глубины не очищен и все еще содержит значения глубины передних треугольников, он выбросит обратные треугольники и ничего не отобразит.
Какой ответ правильный?
2 ответа
Это зависит! Предполагая, что сетка представляет собой объект, который представляет собой двумерное многообразие (т. Е. Топологически эквивалентный плоскости над достаточно небольшими участками вокруг любой точки на поверхности), и первый проход визуализирует передние и задние треугольники или только передние, а функция глубины - GL_LESS или GL_LEQUAL, тогда второй абзац прав, так как передние треугольники всегда находятся перед обратными треугольниками и, следовательно, всегда приводят к провалу теста глубины.
Конечно, если вы используете GL_GREATER или GL_GEQUAL в качестве функции глубины, обратное верно, поэтому первый абзац правильный.
Я думаю, что второй абзац является ложным.
Представьте себе группу Мебиуса, которая является замкнутым коллектором. Вы можете ясно видеть некоторые треугольники, обращенные назад (белого цвета, передние - черного цвета), которые ближе к глазу. Во втором проходе они пройдут тест глубины и будут отображены: