DirectX シェーディングでは、ビューポートで法線バンプ マップの効果を表示することができます。
レッスンの準備:
- 前のレッスンから続けるか、
\materials_and_mapping\normal_bump_map フォルダから pavers_view.max を開きます。
法線バンプ マップのプレビュー:
- 平面オブジェクトを
選択します。オブジェクトを右クリックし、クアッド メニューから[孤立ツール]を選択します。
次に、平面の選択ケージを非表示にしましょう。これは、前の手順で追加した[プロジェクション]モディファイヤによって生成されたものです。
-
[修正]パネルで[モディファイヤ リスト]を開き、[ポリゴンを選択]モディファイヤを適用します。これにより、平面のモディファイヤ スタックの先頭にこのモディファイヤが追加され、選択ケージが非表示になります。
-
スレート マテリアル エディタを開きます。
-
([マテリアルをオブジェクトから選択])をクリックし、平面オブジェクトをクリックしてアクティブ ビューにマテリアルを表示します。
- Proj-Plane_mtl [Proj-Plane] / シェル マテリアル ノード(右側)をダブルクリックしてシェル マテリアルのパラメータを表示します。
ロールアウトに表示されるとおり、シェル マテリアルには 2 つのタイプのマテリアルが含まれます。1 つは元々割り当てられていた平面マテリアルで、レンダリングされた場合にのみ表示されます。もう 1 つはソース オブジェクトから取得されたベイク マテリアルで、ビューポートにのみ表示されます。
- スレート マテリアル エディタで、
([全範囲ズーム])をクリックしてマテリアル ツリー全体を表示します。
ヒント:必要に応じて、スレート マテリアル エディタ ウィンドウのサイズを変更したり、他のナビゲーションを使用したりして、見やすくなるよう調整してください。
右側の最上位ノードは、先ほど見たシェル マテリアルです。その左隣は 2 つのサブマテリアルです。上がオリジナルのレンダリング可能マテリアル、下がベイクされたハードウェア マテリアルです。ベイク マテリアルには、ビットマップ ノードと法線バンプ
マップ ノードがあります(どちらもコントローラ ノードが関連付けられています)。最後に、法線バンプノードは、前のレッスンでレンダリングした NormalsMap ビットマップを使用しています。
- 法線バンプ マップのビットマップ ノードをダブルクリックします。これは、一番左のノードです。
- [ビットマップ パラメータ]ロールアウト
[クロップ/配置]領域で、[イメージを表示]をクリックします。
先ほど作成した法線バンプ マップが平面オブジェクトに適用されて表示されます。
マップ内のカラーには重要な意味があります。法線バンプ マップが、通常のバンプ マップに比べて、格段に多量の詳細を保持できるのは、法線バンプ マップがサーフェス詳細情報に RGB スペクトルの全域を使用するためです。通常のバンプ マップは単一のグレースケールのみを使用しています。青チャネルは、垂直方向の深さ情報を保持し、赤チャネル、緑チャネルは、各点でのサーフェス法線の方向に方向ベクトルを提供することで、この情報を補強します。より高いリアリティが得られるのはこのためです。
-
レンダリング フレーム ウィンドウを閉じます。
ハードウェア シェーディングを使用してマップを表示する:
- スレート マテリアル エディタで、baked_Proj-Plane_mtl / 標準マテリアル ノードをダブルクリックしてパラメータを表示します。
- スレート マテリアル エディタのツールバーで[標準マップをビューポートに表示/ハードウェア マップをビューポートに表示]フライアウトを開き、[ハードウェア マップをビューポートに表示]を選択します。
- パラメータ エディタ パネルで[マップ]ロールアウトを開き、[バンプ]の量を 90 に増やします。
- スレート マテリアル エディタを最小化します。
- パースペクティブ ビューポートで、平面がよく見えるように
ズーム拡大します。
平面オブジェクトの平坦なサーフェスの詳細度が高くなり、3 次元のように見えるようになりました。
次は、標準のオムニ ライトをシーンに追加し、法線バンプ マップを標準のオムニ ライトと組み合わせたときに、オブジェクトにどれだけ立体感を出せるか確認しましょう。
3D 効果の視覚化
-
[作成]パネルで
([ライト])をオンにします。ドロップダウン リストから[標準]を選択し、次に[オムニ]をクリックしてオンにします。
- ビューポートで、平面オブジェクトの上の任意の場所をクリックして、ライトを配置します。
- ライトを選択して、石の上を横切るように
ドラッグします。
必要であればライトを上下に動かして、平面の上に配置します。
このオブジェクトは平面ですが、ライトと影が石の上で動き、まるでジオメトリが隆起したサーフェスであるかのように見えます。
両方のレンダラーでレンダリングを試す:
- ライト オブジェクトを削除します。
- スレート マテリアル エディタを復元し(M を押す)、再度 べてが見えるようウィンドウを移動します。
- Proj-Plane_mtl [Proj-Plane] / シェル マテリアル ノード(右側)をダブルクリックしてシェル マテリアルのパラメータを表示します。
- [シェル マテリアル パラメータ]ロールアウトで、[ベイク マテリアル]をレンダリング出力で可視になるよう設定します。
- スレート マテリアル エディタを最小化します。
- パースペクティブ ビューポートで、平面がほぼ水平になるよう
オービットし、F9 を押して平面をレンダリングします。
平面のエッジが一直線のままで、2 次元的に見えることを確認します。
通常、ゲーム開発でのモデリングでは、ここまでで拡散反射光マップと法線バンプ マップを使用して作成した 3D レリーフでも受け入れられます。 映画制作など、その他の用途では、もう一段階、手を加える必要があるでしょう。
効果を完全にするためには、先ほど作成した高さマップを使用して、mental ray レンダラーでこれをレンダリングします。
-
([レンダリング設定])をクリックして、[レンダリング設定]ダイアログ ボックスを開きます。[共通設定]タブで、[レンダリングを割り当て]ロールアウトまでスクロール ダウンします。次に、[プロダクション]レンダラーの
([レンダラーを選択])をクリックします。
- [レンダラーを選択]ダイアログ ボックスで[mental ray レンダラー]を選択して[OK]をクリックします。
- 平面を再度
レンダリングします。
- レンダリング フレーム ウィンドウで、
([レンダリング フレーム ウィンドウをクローン])をクリックし、2 つのフレームを最小化します。
高さマップをレンダリングする
次は、レンダリングに高さマップを追加します。
- 平面オブジェクトを
選択します。
- M を押して、スレート マテリアル エディタを復元します。
- baked_Proj-Plane_mtl / 標準マテリアル ノードをダブルクリックしてパラメータを表示します。
- [mental ray コネクション]ロールアウト
[拡張シェーダ]領域で、[ディスプレイスメント]の
ロック ボタンをクリックしてディスプレイスメントのロックを解除し、コントロールを有効にします。
- スレート マテリアル エディタの左にある[マテリアル/マップ ブラウザ]パネルから、[マップ]
[mental ray]
[Height Map Displacement]を探し、このマップ タイプをアクティブ ビューにドラッグします。
- アクティブ ビューで、baked_Proj-Plane_mtl / 標準マテリアル ノードと新しい Height Map Displacement ノードの両方がよく見えるよう
ズームします。
- baked_Proj-Plane_mtl / 標準マテリアル ノードのプラス記号アイコン([+])をクリックして[mental ray コネクション]領域を開き、Height Map Displacement ノードからベイク マテリアルの[mental ray コネクション: ディスプレイスメント]コンポーネントにワイヤリングします。
- [マテリアル/マップ ブラウザ]パネルで、[マップ]
[標準]
[ビットマップ]を探し、このマップ タイプをアクティブ ビューにドラッグします。
ファイル ダイアログ ボックスが開きます。
ファイル ダイアログ ボックスで、proj-planeheightmap.tga を選択ます。
このファイルは、拡散反射光マップおよび法線バンプ マップと同様に、\sceneassets\images か、以前に[テクスチャ レンダリング]
[一般設定]ロールアウトで指定したフォルダにあります。
- 新しいビットマップ ノードから Height Map Displacement ノードの[Height Map]コンポーネントにワイヤリングします。
- Height Map Displacement ノードをダブルクリックしてパラメータを表示し、[Height Map Displacement]ロールアウトで[Minimum Height]を 0.0 に設定します。
ヒント:スピナーの矢印を右クリックすると簡単に設定できます。
- パースペクティブ ビューポートを
レンダリングします。
- 先ほどクローンしたレンダリング フレームのビューを復元し、レンダリングを比較します。
ジオメトリは、mental ray エンジンによって生成され、レンダリングに追加されたディスプレイスメント マップに基づいて押し上げられています。
まとめ
このチュートリアルでは、複雑なサーフェスの詳細を、ソース オブジェクトからシンプルな 2 次元平面に投影する方法を説明しました。投影に法線バンプ マップ、拡散反射光マップ、および高さマップを含め、これらを 1 つのテクスチャとしてシンプルな平面にレンダリングすることで、ソースから詳細を引き継ぎます。