в GLSL под OpenGL ES 2, как я могу написать шейдер, который работает на предыдущем выходе - PullRequest
2 голосов
/ 07 августа 2010

Мне нужен шейдер, который начинается с заданной текстуры, затем каждый кадр анимации воздействует на предыдущий вывод шейдера плюс другой ввод.

Как организовать буферы кадров таким образом, чтобы каждый кадр имел доступ к выходному сигналу предыдущего кадра, не перемещая буфер назад и вперед из ЦП?

1 Ответ

2 голосов
/ 07 августа 2010

OpenGL ES 2.0 имеет объекты Framebuffer (FBO), с помощью которых вы можете визуализировать непосредственно в текстуру и использовать эту текстуру в качестве входных данных для следующей итерации.

Это единственный способ сделать это.Используйте два FBO и две текстуры, каждая из которых прикреплена к каждому FBO.Прочитайте из одной текстуры и запишите в другую, а затем поменяйте местами текстуры, чтобы вы прочитали из последней написанной и записали в первую.Это называется рендерингом "пинг-понг".

...