14

VBO の作成後にオブジェクトの頂点リストを更新したいと考えています。私は両方を見てきましたがglBufferSubDataglMapBufferどちらも同じようなことをしているように見えます。つまり、どちらを使用すればよいかわかりません。

私の疑似ワークフローは次のとおりです。

オブジェクトの作成頂点の
更新を開始します (data = nullptr で glBufferData を呼び出します)
オブジェクトの頂点を更新します 頂点の更新を終了します (更新された頂点を受け取り、または
を呼び出します) glBufferSubDataglMapBuffer

4

1 に答える 1

23

どちらも機能します。

頂点を頻繁に (フレームごとに) 更新する場合は、ドライバーでもう 1 つの memcpy を必要とする glBufferSubData を避けることをお勧めします。通常、glMapBuffer/glMapBufferRange を使用すると、パフォーマンスが向上します。

めったに更新しない場合は、glBufferSubData で問題ありません。

OpenGL Insights の第 28 章も参照してください (無料: http://openglinsights.com/ ) 。

于 2012-09-03T08:45:07.277 に答える