Sample12の解説

Sample 12 はQuadTreeによる当たり判定です

当たり判定を取る部分を分割して細分化することにより

高速化を図ろうってな美味しい処理です^^

いつものように変数フィールド内でQuadTreeを宣言して初期化します

QuadTree = new QuadTree(int split, CollisionModel col);
Splitには分割の細かさ、CollisionModelには当たり判定を取るモデルを入れてください
これでQuadTreeの完成です

後は、そのQuadTreeを利用して当たり判定をとります

CollisionModel.CheckCollision(QuadTree qt,

Vector3 StartPos,

Vector3 EndPos,

ref Vector3 HitPos,

out Vector3 Norm,

out MaterialColor matCol,

out int Cell);

QuadTree部分に作成したQuadTreeを入れる以外は一緒ですね^^
Cellには現在いる空間番号が帰ってきます

現在いる空間番号から親空間番号を得るには

QuadTree.CheckCellParents(int Cell);
で習得できます

モートン順序という方法を用いて空間の割り出しをしているので

かなりの高速化になると思います

コメント

タイトルとURLをコピーしました