あなたの質問に対する明確な答えはありません。それは、データの編成方法に完全に依存します。
心に留めておくべきこと:
四分木は、ナビゲーション システムのマップ レンダリングのように、ほとんどが 2 次元のデータに最適です。この場合、ジオメトリによりよく適応し、ノード構造を小さく保つため、octree よりも高速です。
データが 3 次元の場合、オクトリーと BVH (バウンディング ボリューム階層) が役立ちます。また、ジオメトリ エンティティが 3D 空間でクラスタ化されている場合にも非常にうまく機能します。( Octree と BVHを参照) (からアーカイブオリジナル)
Oc および Quadtree の利点は、必要に応じていつでもツリーの生成を停止できることです。グラフィック アクセラレータを使用してグラフィックをレンダリングする場合は、オブジェクト レベルでツリーを生成し、各オブジェクトを 1 回の描画呼び出しでグラフィック API に送信するだけです。これは、個々の三角形を送信するよりもはるかに優れたパフォーマンスを発揮します (BSP ツリーを最大限に使用する場合は、これを行う必要があります)。
BSP ツリーは本当に特殊なケースです。それらは 2D および 3D で非常にうまく機能しますが、優れた BSP ツリーを生成することはそれ自体がアート フォームです。BSP ツリーには、ジオメトリを小さな断片に分割しなければならない場合があるという欠点があります。これにより、データセットの全体的なポリゴン数が増加する可能性があります。レンダリングには適していますが、衝突検出とレイ トレーシングにははるかに適しています。
BSP ツリーの優れた特性は、ポリゴン スープを、実際の並べ替えを行わなくても、任意のカメラ位置から完全に前後 (およびその逆) にレンダリングできる構造に分解することです。各視点からの順序はデータ構造の一部であり、BSP ツリーのコンパイル中に行われます。
ちなみに、それが10年前に人気だった理由です。Quake がこれらを使用したのは、グラフィック エンジン/ソフトウェア ラスタライザーがコストのかかる Z バッファーを使用しないようにするためです。
言及されているすべての木は、単なる木の家族です。ルーズ オクトリー、kd ツリー ハイブリッド ツリー、およびその他の関連する構造も多数あります。