1

FBO でいくつかのレンダー パスを介して生成する OpenGL テクスチャがあります。
ここで、テクスチャを VBO の頂点データとして使用し、それを使用してレンダリングしたいと考えています。
すべてのデータは GPU 側であるため、テクスチャ データを OpenGL の頂点データとして転送 (または再解釈) する効率的な方法はありますか?

または、CPUをずっと通過する必要がありますか

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

? または、私が望むものを達成する別の方法はありますか?

4

1 に答える 1

0

Ok。さらに調査した結果、PBO (Pixel Buffer Objects) はこれを可能にする OpenGL 機能であると思われます。

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

残念ながら、OpenGL ES では利用できないようです ( GameDevelopment のこのスレッドを参照してください)。

于 2012-09-25T14:19:55.587 に答える