2012-09-25 71 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)。