頂点バッファに格納されている変更可能な地形があります。頂点の数が多いため、地形が変更されるたびにすべての頂点を再度アップロードしたくありません。これまでに行ったことは、地形を小さなチャンクに分割して、地形の変更を含む領域のバッファーを再作成するだけでよいようにすることです。
しかし、どうすれば既存のバッファのいくつかの頂点を追加または削除できますか?
頂点バッファに格納されている変更可能な地形があります。頂点の数が多いため、地形が変更されるたびにすべての頂点を再度アップロードしたくありません。これまでに行ったことは、地形を小さなチャンクに分割して、地形の変更を含む領域のバッファーを再作成するだけでよいようにすることです。
しかし、どうすれば既存のバッファのいくつかの頂点を追加または削除できますか?
glBufferSubData
datenwolfが言ったように使用できます。または、多くの変更を行ってデータにランダムにアクセスすることを計画している場合は、を使用してバッファをクライアントメモリにマップしglMapBuffer
、後でマップを解除することができますglUnmapBuffer.
(次に、アクセス指定子に基づいて選択すると、データをC配列として編集できます)
You can change data in an existing buffer using glBufferSubData