タグ

ブックマーク / marupeke296.com (3)

  • その15 8分木空間分割を最適化する!

    ホーム<ゲームつくろー!<衝突判定編 3D衝突編 その15 8分木空間分割を最適化する! 空間分割はオブジェクト同士の衝突や不必要な描画を除くなどパフォーマンスの最適化に必須の技術です。2D衝突編その8とその9では、2D平面を分割する4分木空間分割の最適化と実装をしました。同じ考え方は3D空間の分割にも十分に活用できます。 3Dの空間を分割する典型が8分木空間分割(Octree)です。空間分割の方法は、4分木とお話がかぶりますが、まず一番大きな空間(ルート空間)を定義します。3Dの場合これは直方体となります。分割は各辺のど真ん中を割ります。縦横高さそれぞれで分けるので、1回の分割で8つの小空間が出来上がります。これで親であるルート空間の下に8つの小空間が所属する事になります。後は空間を分割するたびに樹状に所属が広がっていきます。 オブジェクトは境界図形に包まれて、8分木内にある境界図形をす

    Nilfs
    Nilfs 2017/02/03
    こういうのもそろそろ1回やらないとだめか
  • その5 反射ベクトルと壁ずりベクトル

    ホーム<ゲームつくろー!<衝突判定編 基礎の基礎編 その5 反射ベクトルと壁ずりベクトル ゲームで良くあるのが壁ずりです。その名の通り壁に当たった時にキャラクタが壁面に沿ってずりずりと動く様を言います。物理的に正しくは無いのですが、プレイヤーに極自然に「端・障害物」を感じさせることができます。 ① 壁ずりベクトルの求め方 壁ずりでポイントなのは壁ずりする方向(壁ずりベクトル)です。壁に当たった時に強制的に移動させられる方向です: 上の赤いベクトルで表した壁ずりベクトルは壁に対して平行になっています。このベクトルを算出するには「当たった場所の法線」が必要です。 平らな壁の場合、法線ベクトルは多分既知でしょう。壁でなくとも衝突図形であれば、大体衝突点さえわかればその点での法線は求められます。 衝突点での法線ベクトル、壁への進行ベクトルがあれば壁ずりベクトルを計算できます。以下の図を御覧ください

    Nilfs
    Nilfs 2016/12/21
    壁ずりベクトルで検索すれば、こういうのが出てくるの知らなかった。
  • ゲームつくろー!

    ゲームをする側から作る側へ。 どうせ作るなら気で行こう。 「ゲームつくろー」のコンセプトは「目指せ大規模ゲーム」 そして、目指せ出版(笑)

  • 1