OpenGL ES2.0 glReadPixels()非常慢

时间:2013-09-13 05:30:55

标签: android opengl-es opengl-es-2.0 glreadpixels

我使用glReadPixels读取FBO到内存的像素。

以下是代码:

UINT8* data;
glBindFramebuffer(GL_FRAMEBUFFER, FBOID);
glReadPixels(0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, data);

我发现这个操作非常慢......在openGL ES2.0(Android)中有没有其他选择?

1 个答案:

答案 0 :(得分:4)

是的,它很慢。 OpenGL ES 2.0无法在Android上提供更快捷的方式。你可以在OpenGL ES 3.0上使用PBO,但这对你来说可能不是一个选择,因为目前很少有设备支持它,它需要Android 4.3。

编辑:我知道有些设备存在严重的性能问题上传 RGB纹理,也许它也会发生在相反的方向。请尝试使用RGBA格式。