高さ(ディスプレイスメント)マップをマテリアル(Material)ノードのディスプレイスメント(Displacement)アトリビュートに接続することで、オブジェクトにディスプレイスメントを追加できます。
ビューポート 2.0 (Viewport 2.0)でテッセレーションとディスプレイスメントを視覚化するには、DirectX 11 環境で作業を行い、dx11Shader.mll プラグインを有効にする必要があります。詳細については、「ビューポート 2.0 で DirectX 11 を使用する」を参照してください。
次の図では、ディスプレイスメント アトリビュートとテッセレーション アトリビュートを接続する方法について説明しています。
ディスプレイスメント マップのテクスチャ マップ(Texture Map)ノードを作成し、そのカラー(Color)アトリビュートをマテリアル(Material)ノードのディスプレイスメント(Displacement)アトリビュートに接続します。
float(Float)ノードを作成し、マテリアル(Material)ノードのテッセレーション係数(Tessellation Factor)アトリビュートに接続します。float 値を使用してオブジェクトのテッセレーション量を調整します。Viewport 2.0 でテッセレーション量を視覚化するには、マテリアル(Material)ノードを選択してアトリビュート エディタ(Attribute Editor)のワイヤフレーム(Wireframe)オプションを有効にします。この float 値を設定するときは、メッシュの密度を考慮する必要があります。メッシュに既に多数のフェースがある場合には、2 や 3 などの小さい値を使用できます。メッシュに多数のフェースがない場合には、大きい値を使用する必要があります。この値の設定が大きすぎるとシーンの動作が遅くなるため、さまざまな値を試して目的のために最適な値を見つける必要があります。
図に示したように、法線マップ(Normal Map)ノードを作成して TraditionalGameSurfaceShader の法線(Normal)アトリビュートに接続します。オブジェクトの頂点をディスプレイスすると、頂点の新しい位置に対して法線が適切でなくなるため、この手順が必要です。正しい法線の値を持つ法線マップをネットワークに接続することでこの問題を修正することができます。
ShaderFX エディタで Hw シェーダ ノード > テクスチャ > PNAEN ディスプレイスメント マップ(Hw Shader Nodes > Textures > PNAEN Displacement Map)を選択してこのノードを作成します。
マテリアル(Material)ノードのアトリビュート エディタ(Attribute Editor)にあるディスプレイスメント/オプション(Displacement / Options)アトリビュートでは、グレースケール マップを使用するか、ベクトル ディスプレイスメント マップを使用するかを選択できます。
ビューポート 2.0 (Viewport 2.0)でテッセレーションとディスプレイスメントを視覚化するには、DirectX 11 環境で作業を行い、dx11Shader.mll プラグインを有効にする必要があります。詳細については、「ビューポート 2.0 で DirectX 11 を使用する」を参照してください。
次の図では、法線マップと高さマップを接続する方法について説明しています。
このアトリビュートは、ディスプレイスメントのベース値をコントロールします。
たとえば、オフセットが 0.5 に設定されている場合、グレー カラーはディスプレイスされません。黒のカラーでは、インデントが生成されます。白のカラーでは、押し出しが行われます。
同様に、オフセットが 0 に設定されている場合、黒のカラーはディスプレイスされません。グレー(0.5)のオフセットでは、1.0 (白)のオフセットの半分だけ押し出されます。インデントは生成されません。
ShaderFX エディタで Hw シェーダ ノード > テクスチャ > オフセット バンプ マップ(Hw Shader Nodes > Textures > Offset Bump Map)を選択してこのノードを作成します。
オフセット バンプ マップは、視差マップとも呼ばれます。法線マップと追加の高さマップをこのノードに接続して、深度をより適切に描写することができます。
次の図では、法線マップと高さマップを接続する方法について説明しています。
オフセット バンプ マップ(Offset Bump Map)ノードを選択してアトリビュート エディタ(Attribute Editor)の OffsetAmount アトリビュートを調整することで、バンプの高さを調整できます。