Постобработка OpenGL после завершения рисования - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю с библиотекой Android, которая отображает 2D-изображения с использованием OpenGL в GLSurfaceView.

Моя цель - добавить некоторые эффекты постобработки к окончательному изображению.

Источник для библиотеки недоступен.Тем не менее, я могу создать подкласс Renderer и добавить все, что мне нужно, в onSurfaceChanged, onSurfaceCreated и onDrawFrame.

Один из подходов, которые я рассмотрел, - это связать новый FBO перед вызовом super.onDrawFrame.Затем визуализируем это FBO в буфер экрана, используя мою собственную программу шейдеров.Но я не думаю, что это сработает, потому что библиотека уже рисует в буфер экрана и, вероятно, вызывает glFinish () - я не знаю, как этого избежать.

Есть личто я могу сделать, чтобы добавить свою собственную постобработку?

1 Ответ

0 голосов
/ 25 декабря 2018

Вы можете 1.use glReadPixel передать пиксель из FBO по умолчанию.2. Затем создайте свой собственный FBO и текстуру.3. загрузить пиксель в качестве текстуры.4. привязать свой FBO и применить шейдер пост-обработки.5. привязать FBO по умолчанию, а затем отобразить на экране.

...