Рендеринг фрагментного шейдера в буфер кадров за кадром

StackOverflow https://stackoverflow.com/questions/1483903

  •  18-09-2019
  •  | 
  •  

Вопрос

В приложении на основе Qt я хочу выполнить шейдер фрагментов на двух текстурах (обе размером 1000x1000 пикселей).

Я рисую прямоугольник, и шейдер фрагментов работает нормально.

Но теперь я хочу визуализировать выходные данные в GL_AUX0 ( ГЛ_АУКС0 ) буфер кадра, позволяющий считывать результат обратно и сохранить в файл.

К сожалению, если размер окна составляет менее 1000x1000 пикселей выходные данные неверны.Только область размера окна отображается в буфере фрейма.

Как я могу выполнить буфер кадров для всей текстуры?

Это было полезно?

Решение

Рекомендуемый способ выполнения закадровой обработки - использовать объекты фреймбуфера (FBO).Эти буферы действуют аналогично буферам рендеринга, которые вы уже знаете, но не ограничены разрешением окна или глубиной цвета.Вы можете использовать Класс объекта Фреймбуфера GPGPU чтобы скрыть низкоуровневые команды OpenGL и сразу использовать FBO.Если вы предпочитаете делать это самостоятельно, взгляните на спецификация расширения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top