#opengl #smooth
#opengl #сглаживание
Вопрос:
Я пытаюсь получить некоторое сглаживание в моем воксельном движке, но когда я включаю GL_POLYGON_SMOOTH
состояние, я получаю эти странные волны на границе полигонов
Без:
С:
У вас есть идея, откуда это может быть?
Ответ №1:
Это нормально.
Для правильной работы сглаживания полигонов вам нужно 3 вещи:
- При использовании рисуйте воксели задом наперед
GL_POLYGON_SMOOTH
. - Буфер кадров, который хранит альфа-адрес назначения (например, RGBA, а не RGB)
- Функция наложения должна быть
GL_SRC_ALPHA_SATURATE, GL_ONE
Если вы учтете все три из этих вещей, черно-белые артефакты субпикселей исчезнут.
Поскольку рисование вокселов в определенном порядке довольно утомительно и GL_POLYGON_SMOOTH
устарело, большинство людей просто используют сглаживание с несколькими выборками вместо этого. На самом деле я бы посоветовал вам также пойти по этому пути.