3

我正在使用 glReadPixels 将像素从 FBO 读取到内存。

这是代码:

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

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

4

1 回答 1

4

是的,它很慢。OpenGL ES 2.0 没有在 Android 上提供更快的方法。您可以在 OpenGL ES 3.0 上使用 PBO,但这可能不是您的选择,因为目前很少有设备支持它并且需要 Android 4.3。

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

于 2013-09-13T05:37:32.887 回答