我正在使用一个Android库,该库在GLSurfaceView
中使用OpenGL渲染2D图像。
我的目标是在最终图像中添加一些后期处理效果。
该库的源不可用。但是,我可以对Renderer
进行子类化,然后将需要的内容添加到onSurfaceChanged
,onSurfaceCreated
和onDrawFrame
中。
我考虑的一种方法是在调用super.onDrawFrame
之前绑定新的FBO。然后,使用我自己的着色器程序将该FBO渲染到屏幕缓冲区。但是,我认为这行不通,因为该库已经在绘制屏幕缓冲区,并可能调用glFinish(),我不知道一种避免这种情况的方法。
我可以做些什么来添加自己的后处理吗?
答案 0 :(得分:1)
您可以1.使用glReadPixel
从默认FBO传输像素。 2.然后创建自己的FBO和纹理。 3.将像素上载为纹理。 4.绑定您的FBO并应用您的后处理着色器。 5.绑定默认的FBO,然后渲染到屏幕上。