バンプマッピング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
バンプマップなしの球体; イメージの下に適用するバンプマップ; この球体は代数的には最初のものと同じであるが、バンプマップが適用されている。これはバンプマップに沿ってシェーディングの作用を変え、オレンジのようなでこぼこした表面の表現を与えている。

バンプマッピング: Bump mappingバンプマップ)は、レンダリングするオブジェクトの面の法線に対する揺らぎをハイトマップ(高低マップ)で調べて、光源計算の完了前に各ピクセルに対して適用する、CGの技術である(具体例はフォンシェーディングを参照)。出力結果はより豊かで細かくなり、自然界に固有の細やかさにぐっと近いものとなる。法線マッピングはバンプマッピングよりも一般的に使われており、視差マッピング(parallax mapping)のような手法も別にある。

ディスプレースメントマッピングとバンプマッピングの違いはサンプル画像で確認できる。バンプマッピングでは面の法線を変化させ光の当たり判定を変えているだけであり、幾何学的な形状は凸凹のない球体のままである。これによってオブジェクトの形状が人工的であるように感じさせる。

疑似バンプマッピング[編集]

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

非常に単純かつ高速なレンダリングのループで簡単に実装できる全画面2D疑似バンプマッピングは1990年代のデモプログラムで視覚効果として多用された。

正式なバンプマッピング[編集]

バンプマッピングによる擬似的な凹凸(左)と、POV-Rayのisosurface(等値面)機能を用いて生成した実際の凹凸(右)の比較。一見同じような見た目だが、バンプマッピングの方は物体のアウトライン・影ともに凸凹が無いのが解る

正式なバンプマッピングではハイトマップを決めて各ピクセルの計算用ベクトルを利用する。全てのピクセルに対してXとYの勾配を計算するためにはわずかなコードの追加だけで実装でき、より複雑な実装法もある(最終目的は傾斜を計算するということであり、コードの複雑さは重要ではない)。次にコードは法線を正しく調整するための法線情報が収められたバンプマップのU軸とV軸の情報でこれらの点計算を揃えるように作られる。その後、典型的な光源処理では、グラフのような特定の範囲内で、マップ内のベクトルの方向を光源の法線XYZの各点の計算結果と比較して、法線のUVテクスチャのピクセルの影を調整する。もし点がより光源に向いている場合は明るくなり、点が光源と違う方向に向いている場合はより急激に暗くなる。

初期のシェーダモデルから低解像度のフィルタなしスペキュラのように低解像度のライトを使用した場合、アニメーションのスイープのように見え、これがどのように動くのかを間近で確認できる。

ベクトルをピクセル毎に計算するのではなくあらかじめ準備しておく法線マップでは、色としてマップ内に法線ベクトルを格納する。光源の点からXとYの処理までは同じである。

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

必要条件[編集]

安定した正式なバンプマッピングはGPU内に組み込まれたシェーダプログラミングユニット(バーテックスシェーダ)あるいはGPUに接続された専用のベクトル計算機のいずれかが必要である。GPUはマルチパスのレンダリング機能を持っていなければならず、もしその機能がない場合は2枚以上のテクスチャレイヤが制限され、バンプマップだけが唯一適用可能なテクスチャの効果になる。

ソニー・コンピュータエンタテインメント (SCE) のPS2に搭載されたEmotion Engineはベクタプロセッシングユニットによるバンプマップ制御の実例である。SCEはバンプマッピングの操作に使えるGPUシェーダではなく2つのベクタプロセッサを搭載した。このシステムでは各ピクセルの計算を片方のベクタプロセッシングユニットで続けている間にハイトマップを独立して計算できる。しかし、この能力はゲーム機が寿命に近づきHitman: Blood Money[1]のようなゲームが登場するまであまり使われなかった。

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

関連項目[編集]