Привет.
Моя цель - реализовать конвейер для обработки видеокадров, который имеет «текущий» и «предыдущий» кадры. В некоторых случаях необходимо скопировать субрегион из «предыдущего» кадра в «текущий» кадр. Это своего рода декодер, который является частью более крупного приложения.
Это то, что я запускаю до сих пор, на iPhone с использованием OpenGL-ES 1.1
glCopyTexSubImage2D
.--------------------\
glTexSubImage2D V glDrawArray |
изображение --------------------------> Текстура --------------> FBO / Текстура -------> буфер рендеринга
Текстура обновляется каждый новый или частичный кадр как обычно.
Текстура рисуется в объекте буфера кадра и в конечном итоге отображается.
Эти части очень хорошо работают.
Проблема в glCopyTexSubImage2D, который, профилированный с использованием инструментов, показывает, что он занимает около 50% процессорного времени; похоже, что он делает копию с использованием процессора. Тьфу.
Прежде чем опубликовать код (и я с радостью это сделаю), я хотел спросить, является ли эта архитектура надежной?
Следующим этапом проекта является предоставление окончательного FBO / Texture с другим контекстом GL для рендеринга на внешний экран. Я читал другие посты о деликатной природе общих ресурсов.
Спасибо за любые рекомендации.
Ура, Крис
P.S. У меня были некоторые проблемы с тем, чтобы диаграмма выглядела правильно. Линия обратного потока должна идти от узла FBO / Texture к узлу Texture.