如何将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)
x
和 y
指定要从帧缓冲区读取的矩形左下角的位置,format
接受 GL_ALPHA
,GL_RGB
,GL_RGBA
,type
是像素数据的类型,data
是指向返回数据数组的指针。
format
指定数据是 RGB、RGBA 还是 alpha。
您可以在 Khronos specification page 获得更多信息。
我想将我的 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)
x
和 y
指定要从帧缓冲区读取的矩形左下角的位置,format
接受 GL_ALPHA
,GL_RGB
,GL_RGBA
,type
是像素数据的类型,data
是指向返回数据数组的指针。
format
指定数据是 RGB、RGBA 还是 alpha。
您可以在 Khronos specification page 获得更多信息。