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

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

Ответ 1

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

Ответ 2

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