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可以提高速度吗?
获取OpenGL数据(使用任何glGet***函数)是糟糕的(非常糟糕的)方法.要将纹理或某些部分复制到屏幕/其他纹理,您可以使用四边形绘制它.如果您需要像素数据进行某些逻辑处理,最好使帧缓冲尽可能小,并在必要时读取它.
| 归档时间: |
|
| 查看次数: |
3333 次 |
| 最近记录: |