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);
- で習得できます
モートン順序という方法を用いて空間の割り出しをしているので
かなりの高速化になると思います
コメント