Android: применить эффекты OpenGL к камере

есть ли способ В Android использовать GLSurfaceView для отображения предварительного просмотра камеры, используя эффекты OpenGL на этой поверхности? Специфически аддитивные смешивая влияния. Я знаю, что OpenGL может использовать эффекты, и я знаю, что камера может быть размещена на SurfaceView, но может ли камера быть помещена в GLSurfaceView и иметь эффекты смешивания OpenGL, применяемые к этой камере предварительного просмотра?

2 ответов


вы можете использовать предварительный просмотр камеры, чтобы получить необработанные пиксели кадров камеры, затем загрузить его в текстуру, а затем вы можете делать любые эффекты, которые хотите. Попробуйте посмотреть на это: Android камеры OpenGL ES учебник (поддержка android-камеры довольно глючит, хотя она почти никогда не работает при использовании таким образом).


Это непроверенно, но Camera.setPreviewTexture похоже, он был предназначен только для такого рода работы. Он напрямую использует текстуру OpenGL ES в качестве цели предварительного просмотра изображений, поэтому вы можете сделать все, что шейдер может сделать с такой текстурой.