2017-04-17 4 views
0

object_Aと呼ばれるvboバッファ(頂点バッファ)オブジェクトを生成しました。 object_Aに10個の頂点(30個の浮動小数点)が含まれているとしましょう。 今、私はglMapBufferと の頂点(60個の浮動小数点数)を使ってobject_Aを更新したいと思いますが、glMapBufferを使用できますか?現在のvboバッファサイズよりも大きいvboデータを更新するにはどうすればよいですか?

答えて

2

glMapBuffer()は、クライアントのアドレス空間にバッファのデータをマッピングするためだけに使用できません。

バッファのサイズを変更する場合は、glBufferData()を使用する必要があります。 (古い内容を維持するバッファを再割り当て、)

glBufferData(GL_ARRAY_BUFFER, 60 * sizeof(GLfloat), NULL, GL_DYNAMIC_DRAW); 

あなたはrealloc()に似た何かをしたいので、それはだ場合。その後、glCopyBufferSubData()を利用してバッファ間でデータをコピーすることができます。

関連する問題