2012-09-25 33 views
1

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

还是我必须去所有的方式,通过CPU与OpenGL(ES):高效地从纹理获取顶点数据

// ... generate texture on GPU. 
glReadBuffer(..where the texture is..); 
glReadPixels(..., mainMemoryBuffer); 
glBufferSubData(GL_ARRAY_BUFFER, ..., mainMemoryBuffer); 

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

回答

0

好的。一些调查研究后,似乎公益组织(像素缓冲区对象)是OpenGL的功能,启用此:

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

不幸的是,他们似乎是不可用的基于OpenGL ES(see this thread on GameDevelopment)。