android - OpenGL ES2.0 glReadPixels() 非常慢

标签 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) 中有没有其他选择?

最佳答案

是的,它很慢。 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/

相关文章:

Android eglSwapBuffers - 手动控制? (安卓)

Android Systrace 工具内部使用strace 还是ftrace?

java - 如何显示或阅读 docx 文件

android - 在 Android 中为 Spinner 创建文本过滤器(如快速搜索)

android - UV 和顶点的单独索引

c++ - 检索最终场景 z 缓冲区和颜色缓冲区

android - 如何用秒和毫秒进行倒计时

c++ - 我如何在渲染 VBO 后才更改纹理坐标?

c - OpenGL工作着色器?

Android OpenGL2.0 显示黑色纹理