ShaderFX 入門用サンプル ワークフロー

この例では、2 つのテクスチャ ノードを作成し、ブレンドする方法を説明します。

次の操作について説明します。

例: ShaderFX シェーダを作成し、ShaderFX エディタを開く

  1. [パース]ビューポートで、[平面]オブジェクトを作成します。
  2. [マテリアル エディタ]を開き、平面にDirectX シェーダ マテリアルを適用します。

    スレート マテリアル エディタを使用している場合は、DirectX シェーダ ノードをダブルクリックしてそのパラメータを表示します。

  3. [DirectX シェーダ]ロールアウトで、ドロップダウン リストから[ShaderFX]を選択し、[ShaderFX を開](Open ShaderFX)をクリックします。

    3ds Max によって ShaderFX エディタが開きます。

例(続き): 2 つのテクスチャ ノードを作成し、浮動ノードを使用してそれらをブレンドする

  1. ShaderFX 作業領域を右クリックします。右クリック メニューから、[Hw シェーダ ノード](Hw Shader Nodes) [テクスチャ](Textures) [テクスチャ マップ](Texture Map)を選択します。

    ShaderFX により、グラフに [TextureMap]ノードが追加されます。

  2. [TextureMap]ノードをクリックして、作業領域の右側の[Properties]パネルにノードの設定を表示します。
  3. [Properties]パネルで、[MyTexture/Path]の横にある参照ボタンをクリックします。

    表示されたファイル ダイアログで、テクスチャ ファイルを選択します。この例では、コンクリート テクスチャが使用されています。

  4. 2 番目のテクスチャについて手順 1 と 2 を繰り返します。この例では、芝生のテクスチャが使用されます。

    テクスチャ提供: www.cgtextures.com

  5. 作業領域を右クリックして、[Hw シェーダ ノード](Hw Shader Nodes) [演算](Math) [線形補間ミックス](Linear Interpolate Mix)を選択し、2 つのテクスチャを結合する LerpOp ノードを作成します。
  6. 右クリックして、[Hw シェーダ ノード](Hw Shader Nodes) [値](Values) [浮動](Float)を選択し、浮動小数値を含む Val ノードを作成します。
  7. 最初のテクスチャ マップの[カラー](Color)アトリビュートを LerpOp の最初の[値](Value)アトリビュートに接続します。
  8. 2 番目の[Texture Map]の[Color]属性を[LerpOp]の 2 番目の[Value]属性に接続します。
  9. [Val]ノードの[Float]属性を[LerpOP]の[Mix]属性に接続します。

    [Float]値は、各テクスチャがブレンド結果に与える影響の量をコントロールします。たとえば、0.2 に設定すると、結果のテクスチャはほとんどコンクリートのテクスチャとなります。0.8 に設定すると、結果のテクスチャはほとんど草地のテクスチャとなります。0.5 に設定すると、2 つのテクスチャが等しくミックスされます。

  10. 結果の見本を確認するには、[Linear Interpolate]ノードの一番上にある[Render Swatch]アイコン を、大きなプレビューが表示されるまでクリックします。

    [Float]を 0.2 に設定

    .

    [Linear Interpolate Mix]のプレビュー見本には、コンクリート テクスチャが優勢な見本が表示されます。

    [Float]を 0.5 に設定

    .

    コンクリートと草地のテクスチャが均等にミックスされます。

    [Float]を 0.8 に設定

    .

    草地テクスチャが優勢になります。

  11. [LerpOp]の[Result]属性を[TraditionalGameSurfaceShader]ノードの[Diffuse Color]属性に接続します。

    これで、作成したシェーダを[リアリスティック]ビューポートまたは[シェーディング]ビューポートで視覚化することができます。

例(続き): 頂点カラー ノードを使用してテクスチャをブレンドする

  1. 右クリックして、[Hw シェーダ ノード](Hw Shader Nodes) [入力一般](Inputs Common) [頂点カラー](Vertex Color)を選択します。

    浮動ノードを使用する代わりに、頂点カラーを使用してテクスチャをブレンドします。

  2. 線形補間ノードから浮動ノードを接続しているワイヤをクリックして強調表示し、[Delete]を押します。
  3. VertexColor の[赤](Red)アトリビュートを LerpOp の[ミックス](Mix)アトリビュートに接続します。このようにして、[Red]要素をテクスチャのブレンドに使用します。
  4. ビューポートで、[平面]オブジェクトが選択されていることを確認します。 [修正]パネルで、[Length Segs]と[Width Segs]の値を 20 まで増加します。これにより、平面に頂点が追加されて、頂点のペイントの定義が向上します。
  5. [修正]パネルでも、[平面]に[VertexPaint]モディファイアを適用します。

    3ds Max で[VertexPaint Paintbox]が開きます。

    ここで、頂点の一部を赤にペイントします。赤にペイントされた頂点には、草地テクスチャが表示されます。

  6. [Paintbox]で をクリックしてアクティブにします(頂点の色の表示を無効にします)。
  7. 既定の色見本には黒が表示されるはずです。(黒でない場合は、見本をクリックし、[カラー セレクタ]を使用して黒に変更します。)([すべてペイント])をクリックして、平面を黒にします。

    黒の要素が割り当てられている頂点により、平面はコンクリート テクスチャで表示されます。

  8. 色見本をクリックして、色を明るい赤に変更します。
  9. ([ペイント])をクリックして、平面をペイントします。赤でペイントした頂点では草地テクスチャ値が採用されます。これで、頂点をペイントすることによりテクスチャがブレンドされました。

例の続き: テクスチャを乗算してタイル パターンで繰り返されるようにして、異なる、より密度の高い効果を作成する

  1. モディファイヤ スタックで、[頂点ペイント](VertexPaint)モディファイヤをクリックして強調表示し、 ([スタックからモディファイヤを除去](Remove Modifier From The Stack))をクリックします。
  2. ShaderFX エディタで、VertexColor ノードのワイヤをクリックし、[Delete]を押して切断し、Val ノードの[浮動](Float)値を LerpOp の[ミックス](Mix)アトリビュートに再接続します。
  3. VertexColor ノードをクリックして強調表示し、[Delete]を押します。
  4. 右クリックし、[Hw シェーダ ノード](Hw Shader Nodes) [入力一般](Inputs Common) [UV セット](UV Set)を選択して、UV セット ノードを作成します。
  5. 右クリックし、[Hw シェーダ ノード](Hw Shader Nodes) [演算](Math) [乗算](Multiply)を選択して、MulOp ノードを作成します。
  6. 右クリックし、[Hw シェーダ ノード](Hw Shader Nodes) [値](Values) [浮動](Float)を選択して、別の Val ノードを作成します。
  7. UV セット ノードの[UV]アトリビュートを MulOp の最初の[値](Value)アトリビュートに接続します。
  8. 新しい[Val]ノードの[Float]属性を[MulOP]の 2 番目の[Value]属性に接続します。
  9. [MulOp]ノードの[Result]属性をタイルするパターンの[TextureMap]の[UV]属性に接続します。
  10. 新しい[Val]ノードをクリックして選択し、[Properties]パネルでその[Float]値を変更します。[Float]を高い値に設定すると、パターンが多く繰り返され、密度が高くなり、低い値に設定すると、パターンが繰り返される回数が少なくなります。結果のパターンは、[TextureMap]ノードの[Render Swatch] アイコンをクリックすることでプレビューできます。

    値 = 0.5

    値 = 2.0