glOadPixels与FBO太慢了

use*_*168 3 opengl-es framebuffer glreadpixels

我正在使用openGL ES 2.0和GLSL着色器,并使用Renderbuffer(即屏幕外渲染)处理FBO.
它以30 fps工作正常.
但是当我使用glReadPixels或glcopyteximage2d时,它会下降到8 fps.
我做了类似的事情:

glBindFramebuffer(GL_FRAMEBUFFER, frameBuf);
//DRAW something
glReadPixels(...); //HERE
glBindFramebuffer(GL_FRAMEBUFFER, 0);
Run Code Online (Sandbox Code Playgroud)

无论如何我可以提高速度吗?我的意思是当我不使用FBO并使用相同参数的glReadPixels时,它的工作速度为15 fps,我认为使用FBO可以提高速度吗?

bri*_*dir 5

获取OpenGL数据(使用任何glGet***函数)是糟糕的(非常糟糕的)方法.要将纹理或某些部分复制到屏幕/其他纹理,您可以使用四边形绘制它.如果您需要像素数据进行某些逻辑处理,最好使帧缓冲尽可能小,并在必要时读取它.