在 Android 中,有没有办法使用 GLSurfaceView 显示相机预览,并在该表面上使用 OpenGL 特效?特别是加法混合效果。我知道 OpenGL 可以使用这些特效,我也知道相机可以放在 SurfaceView 上,但是能否将相机放置在 GLSurfaceView 中,并对该相机预览应用 OpenGL 混合效果呢?
在 Android 中,有没有办法使用 GLSurfaceView 显示相机预览,并在该表面上使用 OpenGL 特效?特别是加法混合效果。我知道 OpenGL 可以使用这些特效,我也知道相机可以放在 SurfaceView 上,但是能否将相机放置在 GLSurfaceView 中,并对该相机预览应用 OpenGL 混合效果呢?
您可以使用相机预览来获取相机帧的原始像素,然后将其上传到纹理中,然后您可以进行任何想要的效果。请尝试查看此链接:Android Camera OpenGL ES 教程(但是,Android相机支持非常有问题,当以这种方式使用时几乎从不起作用)。
Camera.setPreviewTexture
看起来正是为此而设计。它直接使用OpenGL ES纹理作为预览图像的目标,因此您可以对此类纹理执行着色器所能做的任何操作。