我正在使用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);
有没有办法提高速度?我的意思是,如果我不使用FBO而是使用相同参数的glReadPixels,它可以达到15 fps,我想使用FBO能提高速度吗?
glReadPixels()
等方法将屏幕外渲染内容复制到屏幕上?如果你正在渲染到一个表面,为什么不直接进行(或尽可能接近 - 我从未使用过OpenGL ES)呢? - Bojangles