我有一个OpenGL纹理,我通过我的FBO中的几个渲染过程生成
现在我想将纹理用作VBO中的顶点数据并用它渲染东西
由于所有数据都是GPU侧面的,有没有一种有效的方法将纹理数据作为顶点数据传输(或重新解释)为OpenGL?
或者我必须通过
// ... generate texture on GPU.
glReadBuffer(..where the texture is..);
glReadPixels(..., mainMemoryBuffer);
glBufferSubData(GL_ARRAY_BUFFER, ..., mainMemoryBuffer);
?还是有另一种方法来实现我想要的目标吗?
答案 0 :(得分:0)
确定。经过一些研究后,PBO(Pixel Buffer Objects)似乎是OpenGL功能,可实现这一目标:
glBindBuffer(GL_PIXEL_PACK_BUFFER, myVbo);
glReadPixels(..., 0);
不幸的是,它们似乎在OpenGL ES上无法使用(see this thread on GameDevelopment)。