地図/気まぐれ/3Dの作り方

グリッドを歩く — レイキャスト

逆方向のいちばん軽い形がレイキャスト。世界を平面のグリッドに限り、画面の列ごとに光線を一本だけ飛ばして壁を探す。当たるまでの距離で壁の縦線の高さを決める。高さの情報を持たない 2.5D だが、実時間で歩ける一人称が、非力な計算機でも動いた。

Wolfenstein 3D(1992、id Software の John Carmack)は、グリッドDDAで画面の列ごとに壁を探すレイキャストで一人称シューティングを実時間化した。DDA はセル境界を跨ぐ点だけを順に訪ねる走査で、Amanatides と Woo が 1987 年に定式化した。光線がどの面から壁に入ったか、垂直距離はいくらかが分かれば、縦線一本で壁が立つ。グリッドという制約が、逆方向を最小のコストに落としている。

work は迷路を歩ける。画面の列ぶんの光線で景色が立ち、矢印キーで操作できる。DDA がグリッドを辿る歩き方は経路探索と同じなので、探索に置いた。生成した迷路をそのまま歩ける空間にできる。