问题:在Android上使用 glReadPixel 读取当前渲染数据,在若干机型(华为P9以及魅族某魅蓝手机)上读取数据失败,glGetError() 没有抓到错误,但是获取到的数据有误,如果将获取到的数据保存成为图片,得到的图片为黑色。
解决方法:
glReadPixels实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓冲区的。所以 glReadPixels需要在swapbuffers 之前调用才可以。
本文解决在Android设备(如华为P9、魅族魅蓝)上使用glReadPixels读取渲染数据失败的问题,阐述了双缓冲机制下正确调用glReadPixels的时机,确保从正确的缓冲区读取数据。
问题:在Android上使用 glReadPixel 读取当前渲染数据,在若干机型(华为P9以及魅族某魅蓝手机)上读取数据失败,glGetError() 没有抓到错误,但是获取到的数据有误,如果将获取到的数据保存成为图片,得到的图片为黑色。
解决方法:
glReadPixels实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓冲区的。所以 glReadPixels需要在swapbuffers 之前调用才可以。
652
1万+

被折叠的 条评论
为什么被折叠?