Использование кэшей текстур OpenGL ES вместо glReadPixels для получения данных текстуры

В iOS 5 были введены кэши текстур OpenGL ES, чтобы обеспечить прямой путь от видеоданных камеры к OpenGL без необходимости копирования буферов. Краткое введение в кеши текстур было в сеансе 414 - Достижения в OpenGL ES для iOS 5 на WWDC 2011 .

Я нашел интересную статью , которая в конце концов злоупотребляет этой концепцией и обходит вызов glReadPixels , просто блокируя текстуру, а затем напрямую обращаясь к буферу.

glReadPixels работает очень медленно из-за тайлового рендерера, который используется в iPad 2 (даже если вы используете только текстуры 1x1). Однако описанный метод работает быстрее, чем glReadPixels .

Является ли предложенный в статье метод действительным и можно ли его использовать для ускорения приложений, которые полагаются на glReadPixels ?

Поскольку OpenGL обрабатывает графические данные параллельно с ЦП, как CVPixelBufferLockBaseAddress узнавать, когда рендеринг выполняется без обращения к OpenGL?

5
задан Charles 13 February 2012 в 14:30
поделиться