法線マッピングとは
法線マッピング(ノーマルマッピング)は、3Dコンピュータグラフィックスにおける
バンプマッピングの一種で、物体の表面に凹凸を表現するための技法です。この技術は、
ポリゴン数を増やさずに、より詳細な見た目を実現することを可能にします。
法線マップは、一般的に、より詳細なオブジェクトの
法線ベクトル(表面の向きを示すベクトル)のX, Y, Z座標に対応する
RGB画像です。この画像の情報を使って、低
ポリゴンモデル(
ポリゴン数が少ないモデル)の表面に、高密度
ポリゴンモデル(
ポリゴン数が多いモデル)で生成した詳細な凹凸を再現し、見た目を大幅に改善します。
歴史
高
ポリゴンモデルから詳細な情報を取得するというアイデアは、1996年に発表された論文で初めて示されました。当初はNURBS(曲線や曲面を表現するための数学的なモデル)上で変位マップを生成するために使われていましたが、1998年には、高
ポリゴンメッシュから低
ポリゴンメッシュへ、法線マップの形で詳細を転写するというアイデアが登場しました。
これらの論文では、単純化アルゴリズムを使用して、法線マップを低
ポリゴンメッシュにマッピングする方法が提案されました。その後、高
ポリゴンメッシュと低
ポリゴンメッシュを分離して考え、どのような方法で低
ポリゴンメッシュを生成しても高
ポリゴンメッシュの詳細を再現できるようなシンプルなアルゴリズムが開発され、現在の多くのツールで採用されています。
動作原理
物体の表面における光の
反射を計算する際、光源の方向と表面の
法線ベクトルを使用します。法線マッピングでは、この
法線ベクトルを、法線マップという特別な画像を使って表現します。法線マップの各ピクセルは、対応する表面の位置における
法線ベクトルのX, Y, Z成分を
RGB値として格納しています。
これらの空間の次元は、オブジェクト-空間法線マップの座標系に対応するか、または正接空間法線マップの場合は、テクスチャ座標における位置の導関数に基づいて滑らかに変化する座標系に対応します。これにより、モデルの表面をより詳細に表現でき、特に高度な照明技法と組み合わせることで、よりリアルな表現が可能になります。
ゲームにおける法線マッピング
リアルタイムでの法線マッピングのレンダリングは、初期には高性能な並列レンダリングマシンやワークステーションで実現されていました。その後、PCではパレット化テクスチャと呼ばれる技術を使って実装が可能になり、プログラマブルシェーダーが搭載されるようになってからは、2003年後半頃からビデオゲームで広く使われるようになりました。オープンソースのゲームにも普及しており、リアルタイムレンダリングで法線マッピングがよく使われるのは、他の同様の効果が得られる技法に比べて処理負荷が低いためです。
この効率の高さは、distance-indexed detail scalingという技術によるもので、視点から遠い表面ほど光源のシミュレーションを簡略化することで、法線マップの詳細度を下げています(ミップマップ)。
法線マッピング専用のハードウェアを最初に搭載したゲーム機はセガの
ドリームキャストですが、実際に法線マッピングを多用したのはマイクロソフトのXboxです。Xboxは世界で初めてプログラマブルシェーダーを搭載した家庭用ゲーム機でした。
PlayStation 2は法線マッピングをサポートしていませんでした。
Xbox 360や
PlayStation 3では、法線マッピングが多用されるようになり、視差マッピングなどのより高度な技術も実装されるようになりました。
法線マップは、バンプマップと比較して手作業での作成が難しいため、通常は3Dスカルプトソフトで詳細を作成し、その情報を法線マップに変換して適用する手法が用いられます。
その他の情報
法線マッピングは、
テクスチャマッピングや
バンプマッピングなどの他の技術と組み合わせて使用されることが多いです。また、照明や
反射の表現にも影響を与えます。法線マップは、写真などのデジタル画像を加工して作成することもできます。
関連項目
テクスチャマッピング
バンプマッピング
反射
外部リンク
Realistic, Hardware-accelerated Shading and Lighting(PDF), Heidrich and Seidel,
SIGGRAPH 1999
Introduction to Normal Mapping
Blender Normal Mapping
How to Perform Real Time BumpMapping using OpenGL 古いOpenGLの拡張を使い、パレット化テクスチャによる法線マッピングを実現する方法
Normal Map Photography デジタル写真を加工したものを何枚も重ねて法線マップを作る方法
* Normal Mapping Explained