OpenGL(ES):从纹理中有效地获取顶点数据

时间:2012-09-25 13:52:53

标签: graphics opengl-es gpu gpgpu

我有一个OpenGL纹理,我通过我的FBO中的几个渲染过程生成 现在我想将纹理用作VBO中的顶点数据并用它渲染东西 由于所有数据都是GPU侧面的,有没有一种有效的方法将纹理数据作为顶点数据传输(或重新解释)为OpenGL?

或者我必须通过

完成整个CPU
// ... generate texture on GPU.
glReadBuffer(..where the texture is..);
glReadPixels(..., mainMemoryBuffer);
glBufferSubData(GL_ARRAY_BUFFER, ..., mainMemoryBuffer);

?还是有另一种方法来实现我想要的目标吗?

1 个答案:

答案 0 :(得分:0)

确定。经过一些研究后,PBO(Pixel Buffer Objects)似乎是OpenGL功能,可实现这一目标:

glBindBuffer(GL_PIXEL_PACK_BUFFER, myVbo);
glReadPixels(..., 0);

不幸的是,它们似乎在OpenGL ES上无法使用(see this thread on GameDevelopment)。