ran*_*dom 5 android opengl-es glreadpixels glsurfaceview
我正在使用方法 glReadPixels定期拍摄快照.我需要定期拍摄此快照,以便按照我的应用要求保存我的数据.drawFrameGLSurfaceView.Renderer
然而,glReadPixels性能确实很慢并且显示出滞后.以下是我使用该方法的方法:
gl.glReadPixels(0, 0, 1280, 752, GL10.GL_RGBA,GL10.GL_UNSIGNED_BYTE, bb);
Run Code Online (Sandbox Code Playgroud)
有替代品可以使用glReadPixels吗?如何在不造成滞后的情况下保存图像?
ber*_*nie 10
我不知道这是否可以在Android上使用,但也许PBO(像素缓冲对象)会提升性能.请参阅此OpenGL.org主题.
但是,不要指望奇迹!使用1280*752 RGBA图像,每帧传输3.67 MB数据.我不知道Android的数字,但我敢打赌你面临内存带宽或硬盘写入瓶颈.如果你减小readPixel的大小并获得更好的性能,你知道这就是问题所在.
另外,你需要"A"组件吗?也许回读RGB更快.尝试以不同的格式阅读.有些方式比别人快,因为它们映射更好地OpenGL的内存中表示.例如,BGRA可能比RGBA更快.当您请求的格式与OpenGL不匹配时,必须在操作期间转换每个像素.
| 归档时间: |
|
| 查看次数: |
5317 次 |
| 最近记录: |