如何将opengl处理后的数据从GPU读回主机内存

How to read back opengl processed data from GPU to host memory

我想将我的 yuv420 图像转换成 rgb888 图像。我为此低于 link。 http://www.fourcc.org/source/YUV420P-OpenGL-GLSLang.c

这个程序对我来说很好用。 现在我想将我处理过的 rgb 数据从 GPU 读回到主机内存中。我试过 glGetTexImage 但它只给我最后绑定的纹理数据。

谁能告诉我如何将处理过的 RGB 数据从 GPU 读回到主机内存中?

我还有另一个问题,如果我能成功地将我的数据从 GPU 读回主机内存,那么它将是 RGB 还是 RGBA?

使用glReadPixels命令。语法是`glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * data)

xy 指定要从帧缓冲区读取的矩形左下角的位置,format 接受 GL_ALPHAGL_RGBGL_RGBAtype是像素数据的类型,data是指向返回数据数组的指针。 format 指定数据是 RGB、RGBA 还是 alpha。

您可以在 Khronos specification page 获得更多信息。