各リーフ (最も深いノード) が色付きの 3D ポイントを格納する 3D グリッド (スパース octree) があります。オクトリー全体を、OpenGL に直接アップロードできる 3D ポイントの線形配列 (頂点バッファー) に変換したいと思います。
素朴な方法で、octree のすべてのノードを繰り返し処理し、線形配列を埋めることができます。
今、私が直面した問題は、新しい 3d ポイントをスパース octree に追加し、頂点バッファーを更新したい場合、データを OpenGL に取り込むために完全な octree を反復処理する必要があることです。
いくつかのポイントのみが更新/追加されたときに完全な反復を回避する方法を知っている人はいますか?
私が考えることができる唯一のアプローチは、octree のどの要素が追加されたかを記憶し、それらを頂点バッファー配列に直接追加することです。これはうまく機能しますが、octree から要素を削除すると機能しません。
私はc++を使用しています。