我正在使用 glReadPixels 将像素从 FBO 读取到内存。
代码如下:
UINT8* data;
glBindFramebuffer(GL_FRAMEBUFFER, FBOID);
glReadPixels(0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, data);
我发现这个操作非常非常慢...在 openGL ES2.0(Android) 中有没有其他选择?
最佳答案
是的,它很慢。 OpenGL ES 2.0 在 Android 上没有提供更快的方法。您可以在 OpenGL ES 3.0 上使用 PBO,但这可能不适合您,因为目前支持它的设备很少,而且它需要 Android 4.3。
编辑:我确实知道某些设备在上传 RGB 纹理时存在严重的性能问题,也许它也发生在相反的方向。尝试改用 RGBA 格式。
关于android - OpenGL ES2.0 glReadPixels() 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778942/