作成日:2006/2/11
過去のBlenderのリリースノートにはノーマルマップ(Normal Map)のサポートが書かれています。私はバンプマップしか使っていなかったし、Blenderのリリースノートにあるノーマルマップの説明もあまり分からなかったので、この機能を追及することはしていませんでした。でも、CGWORLDには偶に「ノーマルマップを使いました。」なんて記事を目にします。これはきっと役に立つ機能ではないのかな?と思い、調べてみることにしました。
まず、何が違うのかですが、双方ともテクスチャによりモデルに擬似的な凹凸をつけるところは同じです。そして、これはDisplacementと違って、形状まで変化させないところまで同じです。バンプマップではグレーを基準の色にして、色がより白ければ表面がより凸になっているように、より黒ければより凹になっているようにレンダリングされます。一方、ノーマルマップはRGBで凹凸情報を持たせています。そして、ノーマルマップの方がバンプマップより、より詳細な凹凸を模擬できるという話らしいです。そして、ノーマルマップの効能は、ハイポリゴンのモデルの複雑な表面をノーマルマップにすることで、ローポリゴンのモデルにそれを適用すれば、見栄えがほぼ同じでレンダリングが早くなるというものです。だから、よくゲームのCGに使われているとか。
どのくらい良いのか実験したくなったので、やっちゃいました。以下に結果をまとめます。
まず準備。Blenderでノーマルマップを作ってみました。以下の左図が作ったノーマルマップのテクスチャで、右図がそのノーマルマップを用いてレンダリングした結果です(テクスチャは単なるPlaneオブジェクトに貼り付けています)。

ノーマルマップ・テクスチャ ノーマルマップ・レンダリング結果
結果の通り、確かにノーマルマップは浮き出させている感じがします。では、左図のテクスチャをグレースケールにして、バンプマップとしたときの比較をしてみました。

ノーマルマップ(左)とバンプマップ(右)のレンダリング結果
やっぱり、単純にグレースケールにすると、こうなるか・・・。でも、調整しても、左側のようなノーマルマップの出力にするには難しいかもしれません。それに凹凸の感じが粗いようにも見えます。ここで、バンプマップのテクスチャを眺めていたら、それ自体を「Nor」をオンにしないで、単純にカラーマップとしてレンダリングしたら、ノーマルマップと似ているんじゃないの?と思い、やってみました。

ノーマルマップとカラーマップのレンダリング結果
おお、近い。バンプマップよりはマシかも。でも所詮グレースケール。暗いです。やっぱ駄目です。
結局、世の中の流れは正しく、バンプマップよりノーマルマップを使うべし!ということでしょうか。了解です。