首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >glReadPixels速度太慢,无法使用

glReadPixels速度太慢,无法使用
EN

Stack Overflow用户
提问于 2011-11-22 13:49:04
回答 1查看 5.7K关注 0票数 5

我使用glReadPixelsGLSurfaceView.RendererdrawFrame方法中定期拍摄快照。我需要定期拍摄此快照,以根据我的应用程序要求保存数据。

然而,glReadPixels的性能确实很慢,而且表现出滞后。下面是我如何使用该方法:

代码语言:javascript
复制
gl.glReadPixels(0, 0, 1280, 752, GL10.GL_RGBA,GL10.GL_UNSIGNED_BYTE, bb);

有没有使用glReadPixels的替代方案?如何在不导致延迟的情况下保存图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-22 14:16:06

我不知道这在android上是否可用,但也许PBO (Pixel buffer objects)会提升性能。请参阅此OpenGL.org thread

然而,不要期待奇迹!使用1280*752 RGBA图像,每帧传输3.67MB的数据。我不知道Android的数据,但我敢打赌你正面临内存带宽或硬盘写入瓶颈。如果您减小了readPixel的大小并获得了更好的性能,那么您就知道这就是问题所在。

另外,你需要"A“组件吗?也许读回RGB会更快。试着用不同的格式回读。有些是方式比其他快,因为它们更好地映射到OpenGL内存表示。例如,BGRA可能比RGBA更快。当您请求的格式与OpenGL的格式不匹配时,必须在操作过程中转换每个像素。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8222548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档