Как вы показываете эффекты предварительного просмотра фото, похожие на приложения Path и Camera Sutra? - PullRequest
1 голос
/ 03 мая 2011

Я понимаю и создал приложение, которое отображает предварительный просмотр того, что исходит от камеры, используя AVCaptureVideoPreviewLayer, и я знаю, как захватывать кадры и манипулировать ими, но перебор каждого кадра пиксель за пикселем слишком медленный, перетаскивает частоту кадров вниз. Как такие приложения, как Path и Camera Sutra, выполняют предварительный просмотр живого эффекта и поддерживают хорошую частоту кадров. Я полагаю, OpenGL - это один из вариантов, есть ли другой?

1 Ответ

1 голос
/ 03 мая 2011

Чем больше работы вы можете делегировать на графический процессор, тем лучше будет работать приложение. Без сомнения, наиболее эффективным вариантом для эффектов камеры будет, как вы упомянули, обрабатывать кадр в шейдере OpenGL ES 2.0, а затем отображать преобразованный кадр в виде текстуры. Если бы я рискнул предположить, я бы сказал, что именно такие приложения, как те, о которых вы упомянули, работают под капотом.

На другом конце спектра вы можете полностью избегать OpenGL и оставаться в комфортной сфере C / Objective-C. Похоже, вы дошли до того, что использовали AVFoundation для накачки данных камеры в ваше приложение, перебирая пиксельные данные прямо там, затем создавая UIImage и загружая его в UIImageView для отображения. Мне немного повезло с этим подходом только на мощном iPad 2 для простых эффектов, но он все еще меласса по сравнению с подходом OpenGL.

В любом случае, AVCaptureVideoPreviewLayer - это , а не , который вам вообще поможет: у вас нет доступа к данным, которые он использует для отображения своего предварительного просмотра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...