ディスプレイスメント マップ

 
 
 

ディスプレイスメント マップはバンプ マップに似ていますが、イメージ マップに従って実際にオブジェクトのレンダリング後のジオメトリを変更します。これにより、隆起、尾根、あるいはその他のサーフェイス バリエーションが作成され、ディスプレイスメントを適切に追うシャドウが投影されます。

ディスプレイスメント マップは、オブジェクトの法線方向に各ポイントをディスプレイスメントするスカラ マップです。ジオメトリは、レンダリング プロセス中にこのマップに従ってゆがめられます。実際のテクスチャのように見せた通常のバンプ マッピングとは異なり、エッジは盛り上がって見え、ディスプレイスメント エフェクトに従ってシャドウを投影することもできます。ディスプレイスメントは、レンダリング プロセス中にオブジェクトのジオメトリに作用します。

ディスプレイスメント マップ(A)とバンプ マップ(B)。

ディスプレイスメント マップを作成するには

  1. ディスプレイスメントするサーフェイスを持つオブジェクトを選択します。

  2. Render Tree を開き([7]キーを押す)、オブジェクトの[Material]ノードを展開して、[Displacement]ポートを表示します。

    [Material]ノードのディスプレイスメント入力ポート(A)。

  3. Render Tree の[ノード](Nodes)メニューで、ディスプレイスメント マップとして使用するテクスチャを選択します。イメージに接続し、必要に応じてテクスチャ プロジェクションを選択します。詳細については、「テクスチャを適用する」を参照してください。

  4. テクスチャ ノードの出力を[Material]ノードの[Displacement]パラメータの入力に接続します。

    テクスチャ ノードのカラー出力と[Displacement]入力のスカラ入力に直接的な互換性がない場合でも、Render Tree では、[Color2Scalar]ノードを自動的に挿入してこれらの入力を接続します。

  5. ジオメトリ アプロクシメーションを適用および編集する」(「シーン エレメント」)の説明に従ってジオメトリ アプロクシメーション プロパティを適用または編集し、[ディスプレイスメント]タブで目的のオプションを設定します。

    特に、[最大ディスプレイスメント](Max Displ)を設定します。オブジェクトに許可するディスプレイスメントの最大数を指定します。値がゼロの場合は、ディスプレイスメントが無効になり、ゼロ以外の場合は、ディスプレイスメント量が制限されます。オブジェクトのディスプレイスメントがこの値を超えると、この値にクリップされる(ジオメトリに穴を作成しない)ため、このパラメータを正しく設定することは[非常に重要](critical)です。ディスプレイスメント レベルが目的のレベルに達するよう、最大ディスプレイスメント値は十分に高い値を設定してください。

    すべてのオプションの詳細については、「[ジオメトリアプロクシメーション]プロパティ エディタ」(「プロパティ リファレンス」)を参照してください。

    注:以前のバージョンの Softimage で作成されたシーン([最大ディスプレイスメント]設定が存在しないか、ゼロに設定されている)を読み込む場合は、自動的に 2 に設定されます。オブジェクトの Render Tree で、さらに過度のディスプレイスメントが作成される場合も、クリッピングが発生することがあります。
  6. ディスプレイスメントが適用されると、通常は強度を調整する必要が出てきます。強度の調整は、[ノード](Nodes) [イメージ処理](Image Processing) [強度](Intensity)シェーダを選択します。

  7. ディスプレイスメントを作成するテクスチャ シェーダおよび[Color2Scalar]ノード間で、強度シェーダを接続します。

  8. 強度シェーダをダブルクリックしてプロパティ エディタを開き、[係数](Factor)パラメータを調整してオブジェクトのディスプレイスメントの強度をコントロールします。

    重要:オブジェクトのディスプレイスメント量に、指定の最大ディスプレイスメントを上回る値を指定することはできません。ディスプレイスメントのレベルが最大値を超えた場合は、指定の最大値に設定されます。

    A

    使用しているテクスチャ。

    B

    正のディスプレイスメント係数

    C

    負のディスプレイスメント係数

    オブジェクト上のディスプレイスメント マップは、オブジェクトのレンダリングされたジオメトリ(ワイヤフレームではありません)に影響します。このように、ギザギザのディスプレイスメント マップ(上の図など)は、テクスチャのシャドウのギザギザの原因となります。ディスプレイスメントのコントロールは、マテリアル ノードと、ディスプレイスメントの作成に使用するテクスチャとの間に配置された[Intensity]シェーダで行います。

  9. ディスプレイスメントを使用して移動するオブジェクトでは、[mental ray レンダー オプション]プロパティ エディタ(プロパティ リファレンス)の[レンダタイプ]タブで[シャッター設定]オプションを設定することにより、オブジェクトの移動速度に応じてディスプレイスメント アプロクシメーションを最適化できます。移動オブジェクトのディスプレイスメントの詳細の自動削減は、膨大なテッセレーションのデータ量を大きく削減でき、レンダリング処理とメモリ容量に大きく影響します。

    移動させたジオメトリには適用されたジオメトリ アプロクシメーション プロパティが含まれ、モーション ブラーがレンダ領域やレンダ パスで有効になる必要があります。「モーション ブラーを定義およびレンダリングする」(「カメラとモーション ブラー」)を参照してください。

ディスプレイメントの作成: Render Treeの例

このセクションでは、ディスプレイメントを作成するために Render Tree で構築できるシェーダ ネットワークの例を挙げます。

例 1: アルファ チャンネルを使用してディスプレイスメント マップを作成する

この例では、イメージのアルファ チャンネルを使用して、オブジェクト上にディスプレイスメント マップを作成します。オブジェクトのディフューズ値またはスペキュラ値を操作するのに、同じテクスチャを使用する必要はありません。また、係数スライダを使用すれば、アルファを単独でコントロールすることができます。

この例ではディスプレイスメントを作成していますが、バンプ マップを作成するのも、アルファを使用してテクスチャを定義するのも同じように簡単です。

ノード

機能

A

[Material]ノード: オブジェクトの外観に影響を与えるシェーダに対して、プレースホルダとして設定されています。

B

[Phong]:[Phong]サーフェイス シェーダであり、オブジェクトのサーフェイスが定義されます。

C

[Color2Scalar]シェーダ:[Color2alpha]シェーダのカラーを、ディスプレイスメント マップの処理に必要なスカラ値に出力します。

D

[Color2Alpha]: このカラー チャンネル ツール シェーダにより、イメージからアルファ チャンネルが抽出されます。

プロパティ エディタの係数スライダを使用し、[Color2Alpha]を個別にコントロールできます。

E

[Image]シェーダにより、テクスチャとして使用するイメージとその投影方法が定義されます。

この例では、「Alpha」という言葉がテクスチャに適用されていますが、[Alpha]チャンネルでしか表示できません。

例 2: フラクタルを使用してディスプレイスメントを作成する

マテリアル ノードのディスプレイスメント入力は、リアルなディスプレイスメント マップやアニメートを作成する上で重要です。この例では、簡単な NURBS グリッドにやや多数のサブディビジョンを使用しています。

このチョコレートのようなサーフェイスは、簡単なフラクタル プロシージャル シェーダを使用して作成されたものです。必要なフラクタル値が取得されると、強度シェーダによりディスプレイスメント全体がコントロールされます。

ノード

機能

A

[Material]ノード: オブジェクトの外観に影響を与えるシェーダに対して、プレースホルダとして設定されています。

シェーダが[Displacement]パラメータに接続すると、オブジェクトのサーフェイス ディスプレイスメントに直接影響を及ぼします。

B

[Phong]:[Phong]サーフェイス シェーダであり、オブジェクトのサーフェイスが定義されます。

この例では、滑らかなチョコレート カラーが定義されています。

C

[Color2Scalar]シェーダ:[Intensity]シェーダのカラー出力を、ディスプレイスメント マップの処理に必要なスカラ値に変換します。

D

[Intensity]シェーダ:[フラクタル]ノードの強度全般をコントロールします。[Displacement]パラメータに常時接続する場合に便利なシェーダです。

シェーダ D はこのシェーダの[Input]パラメータに接続しています。

E

[Fractal]シェーダは、アニメートできるフラクタル パターンを定義します。

[Fractal]パラメータを編集し、異なる外観を作成することができます。0.5 より大きいしきい値から開始します。このシェーダには XZ 平面投影が定義されている必要があります。

ヒント:

さらに滑らかなディスプレイスメント エフェクトを作成するには、[Geometry Approximation]の値を編集します。

オブジェクトを選択し、[Select]パネルで[選択](Selection) [Geometry Approximation]を選択します。[ディスプレイスメント](Displacement)タブで、[ステップ]パラメータを編集してください。