Суперсэмплинг AA с PyOpenGL и GLFW - PullRequest
0 голосов
/ 18 января 2019

Я разрабатываю приложение с OpenGL + GLFW и Linux в качестве целевой платформы.

Растеризация по умолчанию имеет ОЧЕНЬ сильный псевдоним.Я реализовал FXAA поверх моего конвейера, и у меня все еще есть довольно сильный псевдоним.Особенно, когда есть какая-то анимация или движение, края сеток мерцают.Это буквально делает весь проект бесполезным.

Итак, я подумал, что я бы добавил суперсэмплинг, и я пытался реализовать его уже две недели и до сих пор не могу заставить его работать.Я начинаю думать, что это невозможно с комбинацией PyOpenGL + GLFW + Ubuntu18.04.

Итак, вопрос в том, могу ли я сделать суперсэмплинг вручную (без расширений OpenGL)?В конце моего (отложенного) конвейера рендеринга я сохраняю все данные с разных проходов на жесткий диск, поэтому я подумал, что сделаю что-то вроде этого:

  1. Визуализация изображения с помощью 2x /3x разрешение текстуры.
  2. Сохранение текстурного буфера в массив.
  3. Получите среднее значение пикселя из каждого 2x2 / 3x3 / 4x4 блока этого массива.
  4. Сохраните его на жесткий диск.

Очевидно, что это будет медленнее, чем мультисэмплинг с расширением OpenGL, и потребует больше памяти, но мне не нужны высокие fps, и у меня естьдовольно маленькое разрешение (например, 480x640 или подобное), чтобы оно могло сработать.

У вас, ребята, есть какие-нибудь мысли по этому поводу?Буду рад любому совету.

...