レイキャスティング【ray casting】
概要

人間が物体を見るとき、光源から出た光が物体に当たって反射し、この反射光が目に届くことで物体を認識する。レイキャスティングはこの逆を計算上でシミュレートする手法である。視点(カメラ)から画面上の各ピクセルに向けて仮想の光線を1本ずつ放ち、その光線が3D空間内のどのオブジェクトに最初に当たるかを計算する。交差したオブジェクトの色や表面の質感(テクスチャ)、光源との位置関係をもとにピクセルの色を決定し、これを全ピクセル分繰り返すことで1枚の画像が完成する。
より高度な手法である「レイトレーシング」(ray tracing)との違いは、光線の追跡をどこまで行うかにある。レイキャスティングはオブジェクトとの最初の交差点で計算を止めるのに対し、レイトレーシングはその点から反射や屈折、影などを求めて、さらに光線を追跡し続ける。レイキャスティングは計算量が少ない分、リアルタイム処理が必要な用途に向いており、レイトレーシングは写実性が高い反面、処理負荷が大きい。
歴史的にレイキャスティングの応用として特に知られるのが、1992年に公開されたゲーム「Wolfenstein 3D」である。厳密には2次元のマップデータに高さ情報を加えた簡略版だが、当時のハードウェアでリアルタイムに擬似3D空間を表示することができ、大きな衝撃を持って受け止められた。後続の「DOOM」でも同様の手法が応用され、一人称視点ゲームの黎明期を支えた技術として知られる。
現在では、グラフィック描画以外にも3Dゲームにおける当たり判定処理などに応用されている。例えば、3Dゲームエンジンにおけるオブジェクトのクリック判定、視線判定、見通し判定(LoS:Line of Sight)など、画面(投影面)上の一点とゲーム内空間の位置を対応付けるような処理で、レイキャスティングを応用した手法が使われることがある。