Z軸とX軸を心配するだけで3D地形のクワッドツリーを作成していますツリーが作成されたら実際にどのようにトラバースするかということを頭の中に入れて何か問題があります。私のクワッドツリーを横切って最下位ノード(3D、C++、DX11)を取得する方法
私はツリーを作成しました。それらはQuadNodeオブジェクトとしてQuadTreeオブジェクトに保存されています。各QuadNodeはクワッドツリーの「クワッド」を表します。それは地形をとり、最下位レベルノードを見つけてノードごとに十分な量の頂点があるまで、新しいノードに細分する必要があるかどうかを判断します。
私は各ノードオブジェクトに頂点/インデックスバッファを保存しましたが、一番下のノードに到達するとポピュレートされます。だから私が取得しようとしているバッファ(描画するバッファを取得する)は、ツリーの一番下にあります。
ここでは、ルートから4つのノードしかない基本的なツリーでかなり簡単に行うことができますが、ツリーが大きくなると混乱します。ここで私はレベルが(レベル6にトラバースのように、おそらく検索を支援するために)クワッドツリーにあるどのように多くの
バッファは一番下のノードに格納されます。誰もが具体的なレベル与えられたツリーを横断する関数をどのように作成するか、それは私にそのレベルのノードを与えるかのように、例の関数または擬似コードを持っていますか?それとも良い方法がありますか?
やりたいことのためにうまく動作するようです見つけました1つのレベルにおけるノードの数は、「4 = n + 4 ^(n-1)+ 4 ^(n-2)」であり、「n == 0」まで続く。したがって、レベル2では '4^2 + 4^1 + 4^0 = 21'となります。レベル3では '21 + 4^3 = 85'となります。レベル4では '85 + 4^4 = 341'となります。 –