OpenGL ES可以渲染到CPU内存中吗?

时间:2011-07-24 09:31:56

标签: opengl-es

是否可以将所有 OpenGL ES 内容呈现为普通的分配的缓冲区而不是帧缓冲区:

/* render into this buffer */
GLubyte* buffer =
(GLubyte*) calloc(width * height * 4, sizeof(GLubyte));

我希望能够将这些渲染图像转换为纹理以供其他用途。

我正在使用 OpenGL ES 1.3 和标准C API。

1 个答案:

答案 0 :(得分:2)

为此,您不会调用glReadPixels,它会将帧缓冲区的内容复制到系统内存中。但是当你想将它复制到纹理中时,你可以直接使用glCopyTex(Sub)Image2D或使用FBOs直接渲染到纹理中而不需要复制(但我不确定是否FBO) ES)支持。但是,当然,您无法直接渲染到系统内存中(对于使用FBO工作的纹理,因为它们存储在GPU内存中)。