バンプマッピング

バンプマッピングとは



バンプマッピングは、コンピュータグラフィックス(CG)におけるテクスチャ表現技術の一つで、オブジェクトの表面に凹凸があるかのように見せるためのものです。具体的には、ハイトマップ(高さ情報を記録した画像)を用いてオブジェクトの各ピクセルの法線ベクトルを調整し、光の当たり方を変化させることで、表面の陰影を表現します。

この技術を用いることで、CGで作成されたオブジェクトの表面がより豊かで細密になり、自然界にあるような細やかな凹凸を表現することが可能になります。バンプマッピングは、1978年にジム・ブリンによって考案されました。

他のマッピング技術との比較



法線マッピング



2000年代以降、ゲームなどの3DCG表現では、バンプマッピングよりも高度な法線マッピングが一般的に利用されています。バンプマップが高さ情報しか保持できないのに対し、法線マップはx、y、zの各方向の情報を保持できるため、より正確な凹凸表現が可能です。

しかし、法線マップの作成には専門的なツールが必要となる一方で、バンプマップはペイントソフトなどで手軽に作成できるというメリットがあります。

視差マッピング



2010年代以降のゲームでは、さらに高度な視差マッピングが使われるようになっています。バンプマッピングや法線マッピングでは、テクスチャの位置はそのままに濃淡を変化させることで陰影を表現しますが、視差マッピングではテクスチャの座標をずらすことで、よりリアルな凹凸を表現できます。これにより、大きな凹凸も不自然さを感じさせずに表現できます。

ただし、バンプマッピング、法線マッピング、視差マッピングのいずれも、オブジェクトの形状そのものを変えるわけではないため、オブジェクトのシルエットは変化しません。そのため、リアルな表現ができる視差マッピングでも、オブジェクトの輪郭付近は不自然に見えることがあります。

ディスプレースメントマッピング



プリレンダリングCGなどでは、さらに高度なディスプレースメントマッピングが利用されています。バンプマッピングが表面の法線を変えることで凹凸を表現するのに対し、ディスプレースメントマッピングはオブジェクトの形状自体を変形させるため、より正確な表現が可能です。

ただし、ディスプレースメントマッピングは非常に負荷が高いため、リアルタイム処理が求められるゲームなどではあまり使われていません。

疑似バンプマッピング



3D CGのプログラマーは、バンプマッピングをシミュレートするために、算術的に負荷の少ない疑似バンプマッピング技術を使うことがあります。これは、面の法線を書き換える代わりにテクセルのインデックスを書き換える手法で、2Dのバンプマッピングでよく使われます。NVIDIA GeForce 2クラスのGPUでは、ハードウェアレベルでこの技術が実装されています。

非常に単純かつ高速なレンダリングループで実装できる全画面2D疑似バンプマッピングは、1990年代のデモプログラムでよく用いられました。

正式なバンプマッピング



正式なバンプマッピングでは、ハイトマップを用いて各ピクセルの計算用ベクトルを利用します。すべてのピクセルに対してXとYの勾配を計算するための処理を追加することで実装できます。

コードは、法線を正しく調整するために、バンプマップのU軸とV軸の情報を使い、これらの点を計算します。その後、典型的な光源処理では、マップ内のベクトルの方向と光源の法線XYZの計算結果を比較し、法線のUVテクスチャのピクセルの影を調整します。点が光源に向いている場合は明るくなり、光源と違う方向を向いている場合は暗くなります。

初期のシェーダーモデルで低解像度のライトを使用した場合、アニメーションのスイープのように見えることがあります。

法線マップでは、ピクセルごとにベクトルを計算する代わりに、法線ベクトルを色としてマップに格納します。光源の点からXとYの処理までは、バンプマッピングと同じです。

正式なバンプマッピングは、描画に必要なパス数やテクスチャレイヤーの量によっては、エンボスバンプマッピングよりも低コストで処理できる場合があります。正式なバンプマッピングが1つの追加パスまたはテクスチャレイヤーで処理を完了できるのに対し、エンボスバンプマッピングは2~3の余分なパスを必要とします。また、法線マッピングは一般にマルチチャンネル構造であるため、複数のパスが必要となるため、バンプマッピングは法線マッピングよりも低コストです。

必要条件



安定した正式なバンプマッピングには、GPUに組み込まれたシェーダープログラミングユニット(バーテックスシェーダー)か、GPUに接続された専用のベクトル演算ユニットが必要です。GPUはマルチパスレンダリングの機能を持っている必要があります。マルチパスレンダリングができない場合、2つのテクスチャレイヤーの制限により、バンプマップが唯一利用可能なテクスチャ効果になります。

ソニー・コンピュータエンタテインメント(SCE)のPlayStation 2に搭載されたEmotion Engineは、ベクトル演算ユニットでバンプマップを処理できる実例です。SCEは、バンプマッピングの操作に使用できるGPUシェーダーではなく、2つのベクトルプロセッサを搭載しました。このシステムでは、ピクセル単位の計算を一方のベクトル演算ユニットで実行している間、ハイトマップを独立して計算できます。しかし、この能力はゲーム機が寿命に近づくまであまり使われませんでした。

SCEのPlayStation 3、マイクロソフトのXboxとXbox 360、そしてほとんどのパーソナルコンピュータで利用されているグラフィックスカードでは、ピクセルシェーダーを使ってバンプマッピングを実行します。

関連項目



テクスチャマッピング
法線マッピング
視差マッピング
ディスプレースメントマッピング
レリーフテクスチャマッピング
ジム・ブリン

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。