Как постобработать изображение с шейдерами в OpenGL? - PullRequest
4 голосов
/ 25 мая 2011

Шейдеры не могут читать данные из фреймбуфера, они могут передавать данные только вперед путем рендеринга конвейера.Но для последующей обработки необходимо прочитать отрендеренное изображение.

Я собираюсь решить это следующим образом: 1) создать текстуру с размером области просмотра;2) нормально рендерит изображение на текстуру;3) рендерит текстуру в кадровый буфер, пропуская ее через шейдер пост-обработки.

Я правильно делаю?Существуют ли более эффективные способы постобработки?

1 Ответ

5 голосов
/ 25 мая 2011

Это действительно обычный способ постобработки! Выполните рендеринг в текстуру, привязав FBO для вашего первого прохода, а затем используйте эту текстуру в качестве входных данных для вашего шейдера пост-обработки после отмены привязки вашего FBO (то есть возврата в буфер кадров по умолчанию).

...