前回は「ベイク」でシームレステクスチャを作成する方法をご紹介しましたが、
今回はその延長で「ベイク」による「ノーマルマップ」の作成・活用方法をご紹介します。
「サカイリブ」というメーカーのリブタイルを壁に貼った画像です。
左の画像はリブの形状をポリゴンによってモデリングしたもので、
右側は「ノーマルマップ」によるテクスチャマッピング処理によってリブを表現しています。
「ノーマルマップ」は「バンプマップ」の親戚のようなもので、
イメージマップによって疑似的に凹凸を表現するためのものです。
ですのでご覧の通り、ポリゴンによる正確な表現と「ノーマルマップ」による疑似的な表現では、
レンダリング結果が若干異なります。
このリブは「20mm」の凹凸があるのですが、
上記例の通り、少し斜めから見た場合に特に顕著なのがリブの深さの表現の違いですね。
アップショットで正確さが求められる場合は、
ポリゴンで表現するほかなさそうですが、
遠目の場合や「5mm」程度の比較的浅い凹凸の場合は、
ポリゴンよりもコストが低く抑えられるメリットもあり、
「ノーマルマップ」による凹凸の表現も有効だと思います。
「ノーマルマップ」の作り方
まずは「基本パターン」をポリゴンでモデリング
前回の「シームレステクスチャ作成法」と同様に、
「サカイリブ」の図面等を参考に基本パターンのモデルを1つポリゴンで作成します。
サンプルのモデルデータはこちらからダウンロードできます。
「ベイク」用のポリゴンを用意する
新しいレイヤーを作成し、ベイク用のポリゴンを作成します。
前回同様、基本モデルをきっちり囲う様に正方形のポリゴンを作成します。
ポリゴンを作成したら「Bake」という名前でマテリアルタグを割り当てておきます。
「シェーダツリー」で「Bake」を選択しておき、
「レイヤー追加」→「画像」→「新規画像」で新規画像を作成します。
保存先・ファイル名を指定したら、以下画像のように
「解像度」:「1024x1024」
「ピクセル形式」:「RGB」
「色の設定」:チェック
「色」:真っ黒
で「OK」を押し、新規画像を作成します。
背景レイヤーのポリゴンの法線をベイクする
前回の「シームレステクスチャ作成法」では、
次の手順で「ベイク」を行っていましたが、
今回は「ポリゴンの法線」を「ベイク」したいので、
シェーダツリーで新規作成したイメージマップの「エフェクト」を、
「ディヒューズの色」から「法線」に変更します。
「法線」に変更したら、イメージマップを右クリックし、
「オブジェクトからテクスチャへベイク」を実行します。
この時に「距離」を聞いてくるので、
今回は基本パターンの厚み「20mm」より少し大きい「30mm」に設定しました。
すると、以下のようなカラフルな画像が生成されます。
ベースのポリゴンモデルのレイヤーを「オフ」にして「ベイク」したポリゴンを確認してみると、
ベースポリゴンの「法線」が「ベイク」されて、1ポリゴンにもかかわらず、
とても立体的に見えていると思います。
※「ファイル」→「画像の保存」でベイクされた画像を保存するのを忘れないでください。
このように真正面(真上)から見た状態では、ほとんど同じ見え方になります。
ですが、視線が水平に近づくと、「ベイク」したポリゴンのペラペラ感は否めません。
あとは出来上がった画像を「法線」としてポリゴンに投影すれば、
疑似凹凸の表現が可能です。
よく「商品の写真をシームレス加工して貼り付けただけ」
のような建築CGを見かけることがありますが、
その場合はライトによるハイライトが入らなかったり、
イマイチ立体感にかけてしまいますが、
この「ノーマルマップ」を使用したことによって、
ライトのハイライトが入り立体感が強調されます。
遠目の場合や、浅い凹凸だけど立体感が欲しいといった場合には、
「ノーマルマップ」を使用することで、シーンデータのコストを大きく下げることができます。