環境マッピング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
環境反射マッピングの例。
中央のオブジェクト(物体)に周囲が映り込んでいる。

環境マッピング(かんきょう-、: environment mapping)とは、3次元コンピュータグラフィックスにおけるテクスチャマッピングの手法の1つで、3次元形状の表面に擬似的な周囲環境の映り込みを再現する手法である。レイトレーシング法を使わずとも、ローカルイルミネーション計算のみで擬似的な鏡面反射金属光沢屈折表現ができる点が特徴である。

主に環境マッピングには反射マッピング: reflection mapping)と屈折マッピング: refraction mapping)があるが、単に環境マッピングと言った場合、多くの場面で反射マッピングのことを指す。なお、この項で言及する反射マッピングとは、反射率のテクスチャマッピングとは異なることに留意されたい。

環境マッピングは1970年代ジム・ブリンによって考案された。

概要[編集]

正確に周囲環境の映り込みを再現するには、レイトレーシング法によって反射を描写するのが理想であるが、レイトレーシング法は画素毎の膨大な追跡計算が求められるため、現在普及しているパーソナルコンピュータゲーム機などでは時間がかかり、リアルタイム処理するのは困難である。

そこでより簡易な手法として、形状に映り込むであろう周囲環境(全周囲の風景)の画像(環境マップと呼ぶ)をあらかじめ用意し、形状に対してあたかも映り込んでいるかのようにテクスチャマッピングするのが、環境マッピングである。通常、環境マップは単一視点からの1枚しか用意されないので、映り込む風景は正確ではなく、擬似的なものとなる。

キューブマップを用いた反射マッピングの概念図。

反射マッピングは、形状表面の法線ベクトルを軸にして視線ベクトルの反射ベクトルを算出し、これと対応する環境マップのテクセルを当該表面にマッピングすることで、擬似的な映り込みを再現する。屈折マッピングは、反射ベクトルの代わりに、別途指定された屈折率に応じて屈折ベクトルを算出するほかは反射マッピングと同じであるが、多くの場合、当該表面の1回分しか屈折計算しないため、いっそう擬似的な表現になる。

これらはUVマッピングでのUV座標をレンダリング毎に変動させることに凡そ相当する為、一般的なUVマッピング対応のレンダリングエンジンを流用して実装できる。現在普及しているほとんどのパーソナルコンピュータやゲーム機のシェーダでは、リアルタイムのテクスチャマッピングが可能であり、同様の手法でリアルタイムの環境マッピングを再現できる。環境マッピングは、Direct3D 6.0やOpenGLといった3次元グラフィックライブラリでもサポートされている。家庭用テレビゲーム機では第5世代ゲーム機頃から対応が始まり、『グランツーリスモ』などで先行的な例が見られる。

環境マップの形式[編集]

環境マップは全周囲の風景を2次元の画像に収める為、特殊な3次元ベクトル/2次元テクセルの対応を持つ。主な環境マップの形式には、次のようなものがある。

上:キューブマップの例。左下:黒点位置に視点。右下:仮想の立方体。
キューブマップ(: cube map
対象のオブジェクトの6方向(x+,x-,y+,y-,z+,z-)のイメージやライティング効果をテクスチャとしてオブジェクトに適用する方法である。オブジェクトより大きい立方体を配置し、6つの内壁に映ったオブジェクトの周囲の空間をテクスチャとして利用する。
球状マップ(: sphere map、スフィアマップ)
オブジェクトの周囲の空間やライティング効果を表現した特殊テクスチャである。全周囲を1枚の2次元画像に表したものであり、理論的には視野角360度の魚眼レンズで風景を撮影したのと同じであり、実写撮影にはしばしば球面鏡が用いられる。

関連項目[編集]