キューブマッピング
概要
テクスチャキューブと呼ばれる正方形テクスチャ6個1組にしたものをワールドを囲む壁面のように配置し、 サンプリング処理としてカメラとピクセルの角度を計算し、その反射した位置にある色を取ることで 「鏡面反射」を実現するというものである。
レイトレーシングの超手抜き版みたいなもので、
- レイの反射は1回
- レイは他のモデルを考慮せず突き抜け
- テクスチャキューブから色を採取する
さらに手を抜いて計算は一切せずに「モデルの法線」を利用するという手法もある。これは精度よりも速度を重視したい場合に使われる。細かいことは気にしてはならない。ハゲるぞ。
さらに、カメラから見える範囲の全ピクセルに対してレイを飛ばし、かつレイを反射させないと、いわゆる空や背景を描く「スカイボックス」になる。
ハードウェア
キュープマッピングに対応した最初のGPUはNVIDIAのGeForce 256である。テクスチャキューブを投げるだけで全自動でやってくれるスグレモノだ。 NVIDIAは大々的に宣伝した。
最近のGPUでは「TextureCube」的なオブジェクトが用意されており、難しいことは考えずに利用できる。
HLSLでもtexCUBE関数にテクスチャキューブとfloat3型の座標を投げるだけだ。