オクトリーとは?
オクトツリーは、主にゲーム業界向けの3次元(3D)およびポリゴンの作成に使用されるデジタルツリー構造です。 octree構造では、各内部ノードは子を持たないか、8個の子(その間に何もありません)を持ち、各子ノードは赤青緑(RGB)カラープロファイルの色情報を保持できます。 構造全体が1つのキューブとして始まり、空の内部キューブが衝突情報に使用されます。 この構造は、各子に保持されるデータの量が比較的少なく、ツリーのサイズを制限できるため、メモリ効率が非常に高くなります。
ビデオゲーム用にモデルを作成する場合、テクスチャと色の情報が必要であり、他のモデルと衝突できる必要があります。 この業界で使用される構造の1つは、octreeです。 オクトツリーと呼ばれることもありますが、この名前はこのツリー構造の8番目の重要性を示しています。 ツリー構造の作成と同様に、octreeには親ノードと子ノードがあります。 他のツリーとは異なり、親から作成できる子ノードの数にはほとんど変化がありません。
各親には、8つのノードを含めることができます。 完全にレンダリングされたモデルを作成するには、両方のキューブタイプが重要です。 最も集中的なキューブは、8つのノードを持つキューブです。 各内部ノードには色とテクスチャの情報が含まれているため、モデルを複雑な外観にすることができます。 たとえば、モデルがツリーである場合、各内部ノードにはトランクの茶色と、リアルなテクスチャを作成するためのシェーディング情報が含まれている必要があります。
8つのノードを持つキューブはoctreeにとって重要ですが、空のキューブも同様に重要です。 構造全体は、他の小さなキューブが住むことができる1つの大きな空のキューブとして始まります。 このキューブは、他の空のキューブとともに、主に衝突情報に使用されます。 たとえば、あるモデルがこのモデルにぶつかると、空のキューブは、衝突を引き起こすために前進できないことをモデルに伝えます。
octreeを使用して適切なモデルを作成することは集中的であり、多くの情報が含まれますが、構造自体はメモリを非常に効率的に使用します。 これの1つの理由は、多くのコーディングがありますが、情報は単なる色とテクスチャの情報であり、したがってかなり小さいことです。 もう1つの理由は、ツリーに不要なデータを保持するさまざまなレベルがあり、プルーニングすると、メモリをさらに縮小できることです。