DirectX シェーディングでは、ビューポートで法線バンプ マッピングの効果を表示することができます。
レッスンの準備:
- 前のレッスンの結果を続けて使用するか、
\materials_and_mapping\normal_bump_map
フォルダから
pavers_view.max
を開きます。
注: このレッスンの 2 番目の手順では、Nitrous ドライバ(既定では Nitrous Direct3D 11)または従来の Direct3D ディスプレイ ドライバを使用したビューポートにおける 3D 効果を示します。使用しているドライバを確認するには、[カスタマイズ](Customize)

[基本設定](Preferences)

[ビューポート](Viewports)を使用します。必要に応じて、ドライバを変更することができます。 ドライバを変更すると、
3ds Maxを再起動する必要があります。
法線バンプ マップのプレビュー:
- 平面オブジェクトを
選択します。オブジェクトを右クリックし、クアッド メニューから[分離ツール](Isolate Selection)を選択します。 次に、平面の選択ケージを非表示にしましょう。これは、前の手順で追加した[投影](Projection)モディファイヤによって生成されたものです。
[修正](Modify)パネルで[モディファイヤ リスト](Modifier List)を開き、[ポリゴンを選択](Poly Select)モディファイヤを適用します。これにより、平面のモディファイヤ スタックの先頭にこのモディファイヤが追加され、選択ケージが非表示になります。
スレート マテリアル エディタを開きます。
([マテリアルをオブジェクトから選択](Pick Material From Object))をクリックし、平面オブジェクトをクリックしてアクティブ ビューにマテリアルを表示します。
- Proj-Plane_mtl [Proj-Plane] マテリアル ノード(右側)をダブルクリックしてシェル マテリアルのパラメータを表示します。
ロールアウトに表示されるとおり、シェル マテリアルには 2 つのタイプのマテリアルが含まれます。1 つは元々割り当てられていた平面マテリアルで、レンダリングされた場合にのみ表示されます。もう 1 つはソース オブジェクトから取得されたベイク処理済みマテリアルで、ビューポートにのみ表示されます。
- スレート マテリアル エディタで、
([全範囲ズーム](Zoom Extents))をクリックしてマテリアル ツリー全体を表示します。
ヒント: 必要に応じて、スレート マテリアル エディタ ウィンドウのサイズを変更したり、他のナビゲーションを使用したりして、見やすくなるよう調整してください。
右側の最上位ノードは、先ほど見たシェル マテリアルです。その左隣は 2 つのサブマテリアルです。上がオリジナルのレンダリング可能マテリアル、下がベイク処理されたハードウェア マテリアルです。ベイク処理マテリアルには、ビットマップ ノードと法線バンプ マップ ノードがあります。 最後に、法線バンプノードは、前のレッスンでレンダリングした NormalsMap ビットマップを使用しています。
- 法線バンプ マップのビットマップ ノードをダブルクリックします。これは、一番左のノードです。
- [ビットマップ パラメータ](Bitmap parameters)ロールアウト
[クロップ/配置](Cropping/Placement)領域で、[イメージを表示](View Image)をクリックします。
3ds Max では先ほど作成した法線バンプ マップが平面オブジェクトに適用されて表示されます。
マップ内のカラーには重要な意味があります。法線バンプ マップが、通常のバンプ マップに比べて、格段に多量の詳細を保持できるのは、法線バンプ マップがサーフェス詳細情報に RGB スペクトルの全域を使用するためです。通常のバンプ マップは単一のグレースケールのみを使用しています。青チャネルは、垂直方向の深さ情報を保持し、赤チャネル、緑チャネルは、各点でのサーフェス法線の方向に方向ベクトルを提供することで、この情報を補強します。より高いリアリティが得られるのはこのためです。
-
レンダリング フレーム ウィンドウを閉じます。
ハードウェア シェーディングを使用してマップを表示する:
- スレート マテリアル エディタで、baked_Proj-Plane_mtl マテリアル ノードをダブルクリックしてパラメータを表示します。
- スレート マテリアル エディタのツールバーで[ビューポート内でマップを表示](Show Map In Viewport)フライアウトを開き、[リアリスティック マテリアルをビューポートに表示](Show Realistic Material In Viewport)を選択します。
注: 従来の Direct3D ドライバをご使用の場合は、このオプションのツールチップに[ハードウェア マテリアルをビューポートに表示](Show Hardware Material In Viewport)と表示されます。
- パラメータ エディタ パネルで[マップ](Maps)ロールアウトを開き、[バンプ](Bump)の量を 90 に増やします。
- スレート マテリアル エディタを最小化します。
- パース ビューポートで、平面がよく見えるように
ズーム拡大します。 平面オブジェクトの平坦なサーフェスの詳細度が高くなり、3 次元のように見えるようになりました。
次は、標準のオムニ ライトをシーンに追加し、法線バンプ マップを標準のオムニ ライトと組み合わせたときに、オブジェクトにどれだけ立体感を出せるか確認しましょう。
3D 効果の視覚化
[作成](Create)パネルで
([ライト](Lights))をアクティブにします。ドロップダウン リストから[標準](Standard)を選択し、次に[オムニ](Omni)をクリックしてアクティブにします。
- ビューポートで、平面オブジェクトの上の任意の場所をクリックして、ライトを配置します。
- ライトを選択して、石の上を横切るように
ドラッグします。 必要であればライトを上下に動かして、平面の上に配置します。
このオブジェクトは平面ですが、ライトと影が石の上で動き、まるでジオメトリが隆起したサーフェスであるかのように見えます。
ヒント: 3D 照明効果が表示されない場合は、[シェーディング ビューポート ラベル メニュー](Shading Viewport Label Menu)

[ライトとシャドウ](Lighting And Shadows)

[シーン ライトで照明](Illuminate With Scene Lights)を選択します。 (Nitrous ビューポートを使用の場合、このオプションは、シェーディング スタイルが[リアリスティック]の場合にのみ使用できます。)
両方のレンダラーでレンダリングを試す:
- ライト オブジェクトを削除します。
- スレート マテリアル エディタを復元し(M を押す)、必要に応じて、すべてが見えるようエディタ ウィンドウを移動します。
- Proj-Plane_mtl [Proj-Plane] マテリアル ノード(右側)をダブルクリックしてシェル マテリアルのパラメータを表示します。
- [シェル マテリアル パラメータ](Shell Material Parameters)ロールアウトで、[ベイク処理済みマテリアル](Baked Material)をレンダリング出力で可視になるよう設定します。
- スレート マテリアル エディタを最小化します。
- パース ビューポートで、平面がほぼ水平になるよう
オービットし、F9 を押して平面をレンダリングします。
平面のエッジが一直線のままで、2 次元的に見えることを確認します。
通常、ゲーム開発でのモデリングでは、ここまでで拡散反射光マップと法線バンプ マップを使用して作成した 3D レリーフでも受け入れられます。 映画制作など、その他の用途では、もう一段階、手を加える必要があるでしょう。
効果を完全にするためには、先ほど作成した高さマップを使用して、mental ray レンダラーでこれをレンダリングします。
([レンダリング設定](Render Setup))をクリックして、[レンダリング設定](Render Setup)ダイアログ ボックスを開きます。[共通設定](Common)タブで、[レンダリングを割り当て](Assign Renderer)ロールアウトまでスクロール ダウンします。次に、[プロダクション](Production)レンダラーの
([レンダラーを選択](Choose Renderer))をクリックします。
- [レンダラーを選択](Choose Renderer)ダイアログ ボックスで[NVIDIA mental ray](NVIDIA mental ray)を選択して[OK]をクリックします。
- 平面を再度
レンダリングします。
- レンダリング フレーム ウィンドウで、
([レンダリング フレーム ウィンドウをクローン](Clone Rendered Frame Window))をクリックし、2 つのフレームを最小化します。
高さマップをレンダリングする
次は、レンダリングに高さマップを追加します。
- 平面オブジェクトを
選択します。
- M を押して、スレート マテリアル エディタを復元します。
- baked_Proj-Plane_mtl マテリアル ノードをダブルクリックしてパラメータを表示します。
- [mental ray コネクション](mental ray Connection)ロールアウト
[拡張シェーダ](Extended Shaders)領域で、[ディスプレイスメント](Displacement)の
ロック ボタンをクリックしてディスプレイスメントのロックを解除し、コントロールを有効にします。
- スレート マテリアル エディタの左にある[マテリアル/マップ ブラウザ](Material/Map Browser)パネルから、[マップ](Map)
[mental ray]
[Height Map Displacement]を探し、このマップ タイプをアクティブ ビューにドラッグします。
- アクティブ ビューで、baked_Proj-Plane_mtl / 標準マテリアル ノードと新しい Height Map Displacement ノードの両方がよく見えるよう
ズームします。
- baked_Proj-Plane_mtl マテリアル ノードのプラス記号アイコン([+])をクリックして[mental ray コネクション](mr Connection)領域を開き、Height Map Displacement ノードからベイク処理済みマテリアルの[mental ray コネクション: ディスプレイスメント](mr Connection: Displacement)コンポーネントにワイヤリングします。
- [マテリアル/マップ ブラウザ](Material/Map Browser)パネルで、[マップ](Map)
[標準](Standard)
[ビットマップ](Bitmap)を探し、このマップ タイプをアクティブ ビューにドラッグします。 3ds Max によってファイル ダイアログ ボックスが開きます。
ファイル ダイアログ ボックスで、
proj-planeheightmap.tga
を選択ます。
このファイルは、拡散反射光マップおよび法線バンプ マップと同様に、
\sceneassets\images
か、以前に[テクスチャ レンダリング](Render To Texture)
[一般設定](General Settings)ロールアウトで指定したフォルダにあります。
- 新しいビットマップ ノードから Height Map Displacement ノードの[Height Map]コンポーネントにワイヤリングします。
- Height Map Displacement ノードをダブルクリックしてパラメータを表示し、[Height Map Displacement]ロールアウトで[Minimum Height]を 0.0 に設定します。
ヒント: スピナーの矢印を右クリックすると簡単に設定できます。
- パース ビューポートを
レンダリングします。
- 先ほどクローンしたレンダリング フレームのビューを復元し、レンダリングを比較します。
ジオメトリは、mental ray エンジンによって生成され、レンダリングに追加されたディスプレイスメント マップに基づいて押し上げられています。
概要
このチュートリアルでは、複雑なサーフェスの詳細を、ソース オブジェクトからシンプルな 2 次元平面に投影する方法を説明しました。投影に法線バンプ マップ、拡散反射光マップ、および高さマップを含め、これらを 1 つのテクスチャとしてシンプルな平面にレンダリングすることで、ソースから詳細を引き継ぎます。