У меня есть небольшое приложение OpenGL для научной визуализации с конвейером отложенного рендеринга. У меня есть 2 прохода: геометрический проход, на котором я рендерил текстуры с позициями, нормалями, альбедо, сегментацией и т. Д .; и проход освещения, где я просто отображаю некоторые из этих данных на четырехугольник и отображаю их на экране или даже сохраняю некоторые изображения на жестком диске. Итак, классический отложенный рендеринг.
Теперь мне нужно добавить каркасный рендеринг для дополнительной текстуры.
Я думал о том, чтобы сделать это в геометрическом шейдере, но это казалось довольно сложным, и производительность не была проблемой, поэтому я просто установил третий проход с glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
, где я рендерил его в текстуру, а затем передал его в проход освещения. вместе с другими вещами.
Все работает хорошо, но мне было интересно, можно ли как-то использовать буфер глубины, а не рендерить каркасы позади модели? Я имею в виду, конечно, я могу отбросить полигоны задней поверхности, но за полигонами лицевой стороны все еще будут некоторые линии, которые также являются лицевой стороной. Я хочу отбросить его так, как если бы полигоны были заполнены, но отображать только каркас.
Было бы также хорошо визуализировать модель, а затем визуализировать на ней каркас, но я не могу этого сделать, потому что я рендерил модель на текстуру в проходе геометрии с помощью glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
и каркас в другом проходе с glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
, поэтому я не могу использовать буфер глубины по умолчанию.
Итак, у вас, ребята, есть мысли?