この例では、2 つのテクスチャ ノードを作成し、ブレンドする方法を説明します。
次の操作について説明します。
- [Float]ノードを使用して、テクスチャをブレンドする
- 頂点をペイントして、テクスチャをブレンドする
- テクスチャを乗算することでテクスチャが自動的に繰り返されるようにして、異なる効果を作り出す
例: ShaderFX シェーダを作成し、ShaderFX エディタを開く
- [パース]ビューポートで、[平面]オブジェクトを作成します。
- [マテリアル エディタ]を開き、平面にDirectX シェーダ マテリアルを適用します。
スレート マテリアル エディタを使用している場合は、DirectX シェーダ ノードをダブルクリックしてそのパラメータを表示します。
- [DirectX シェーダ]ロールアウトで、ドロップダウン リストから[ShaderFX]を選択し、[ShaderFX を開](Open ShaderFX)をクリックします。
3ds Max によって ShaderFX エディタが開きます。
例(続き): 2 つのテクスチャ ノードを作成し、浮動ノードを使用してそれらをブレンドする
- ShaderFX 作業領域を右クリックします。右クリック メニューから、[Hw シェーダ ノード](Hw Shader Nodes) [テクスチャ](Textures) [テクスチャ マップ](Texture Map)を選択します。
ShaderFX により、グラフに [TextureMap]ノードが追加されます。
- [TextureMap]ノードをクリックして、作業領域の右側の[Properties]パネルにノードの設定を表示します。
- [Properties]パネルで、[MyTexture/Path]の横にある参照ボタンをクリックします。
表示されたファイル ダイアログで、テクスチャ ファイルを選択します。この例では、コンクリート テクスチャが使用されています。
- 2 番目のテクスチャについて手順 1 と 2 を繰り返します。この例では、芝生のテクスチャが使用されます。
テクスチャ提供: www.cgtextures.com
- 作業領域を右クリックして、[Hw シェーダ ノード](Hw Shader Nodes) [演算](Math) [線形補間ミックス](Linear Interpolate Mix)を選択し、2 つのテクスチャを結合する LerpOp ノードを作成します。
- 右クリックして、[Hw シェーダ ノード](Hw Shader Nodes) [値](Values) [浮動](Float)を選択し、浮動小数値を含む Val ノードを作成します。
- 最初のテクスチャ マップの[カラー](Color)アトリビュートを LerpOp の最初の[値](Value)アトリビュートに接続します。
- 2 番目の[Texture Map]の[Color]属性を[LerpOp]の 2 番目の[Value]属性に接続します。
- [Val]ノードの[Float]属性を[LerpOP]の[Mix]属性に接続します。
[Float]値は、各テクスチャがブレンド結果に与える影響の量をコントロールします。たとえば、0.2 に設定すると、結果のテクスチャはほとんどコンクリートのテクスチャとなります。0.8 に設定すると、結果のテクスチャはほとんど草地のテクスチャとなります。0.5 に設定すると、2 つのテクスチャが等しくミックスされます。
- 結果の見本を確認するには、[Linear Interpolate]ノードの一番上にある[Render Swatch]アイコン を、大きなプレビューが表示されるまでクリックします。
[Float]を 0.2 に設定
.
[Linear Interpolate Mix]のプレビュー見本には、コンクリート テクスチャが優勢な見本が表示されます。
[Float]を 0.5 に設定
.
コンクリートと草地のテクスチャが均等にミックスされます。
[Float]を 0.8 に設定
.
草地テクスチャが優勢になります。
- [LerpOp]の[Result]属性を[TraditionalGameSurfaceShader]ノードの[Diffuse Color]属性に接続します。
これで、作成したシェーダを[リアリスティック]ビューポートまたは[シェーディング]ビューポートで視覚化することができます。
例(続き): 頂点カラー ノードを使用してテクスチャをブレンドする
- 右クリックして、[Hw シェーダ ノード](Hw Shader Nodes) [入力一般](Inputs Common) [頂点カラー](Vertex Color)を選択します。
浮動ノードを使用する代わりに、頂点カラーを使用してテクスチャをブレンドします。
- 線形補間ノードから浮動ノードを接続しているワイヤをクリックして強調表示し、[Delete]を押します。
- VertexColor の[赤](Red)アトリビュートを LerpOp の[ミックス](Mix)アトリビュートに接続します。このようにして、[Red]要素をテクスチャのブレンドに使用します。
- ビューポートで、[平面]オブジェクトが選択されていることを確認します。 [修正]パネルで、[Length Segs]と[Width Segs]の値を 20 まで増加します。これにより、平面に頂点が追加されて、頂点のペイントの定義が向上します。
- [修正]パネルでも、[平面]に[VertexPaint]モディファイアを適用します。
3ds Max で[VertexPaint Paintbox]が開きます。
ここで、頂点の一部を赤にペイントします。赤にペイントされた頂点には、草地テクスチャが表示されます。
- [Paintbox]で をクリックしてアクティブにします(頂点の色の表示を無効にします)。
- 既定の色見本には黒が表示されるはずです。(黒でない場合は、見本をクリックし、[カラー セレクタ]を使用して黒に変更します。)([すべてペイント])をクリックして、平面を黒にします。
黒の要素が割り当てられている頂点により、平面はコンクリート テクスチャで表示されます。
- 色見本をクリックして、色を明るい赤に変更します。
- ([ペイント])をクリックして、平面をペイントします。赤でペイントした頂点では草地テクスチャ値が採用されます。これで、頂点をペイントすることによりテクスチャがブレンドされました。
例の続き: テクスチャを乗算してタイル パターンで繰り返されるようにして、異なる、より密度の高い効果を作成する
- モディファイヤ スタックで、[頂点ペイント](VertexPaint)モディファイヤをクリックして強調表示し、 ([スタックからモディファイヤを除去](Remove Modifier From The Stack))をクリックします。
- ShaderFX エディタで、VertexColor ノードのワイヤをクリックし、[Delete]を押して切断し、Val ノードの[浮動](Float)値を LerpOp の[ミックス](Mix)アトリビュートに再接続します。
- VertexColor ノードをクリックして強調表示し、[Delete]を押します。
- 右クリックし、[Hw シェーダ ノード](Hw Shader Nodes) [入力一般](Inputs Common) [UV セット](UV Set)を選択して、UV セット ノードを作成します。
- 右クリックし、[Hw シェーダ ノード](Hw Shader Nodes) [演算](Math) [乗算](Multiply)を選択して、MulOp ノードを作成します。
- 右クリックし、[Hw シェーダ ノード](Hw Shader Nodes) [値](Values) [浮動](Float)を選択して、別の Val ノードを作成します。
- UV セット ノードの[UV]アトリビュートを MulOp の最初の[値](Value)アトリビュートに接続します。
- 新しい[Val]ノードの[Float]属性を[MulOP]の 2 番目の[Value]属性に接続します。
- [MulOp]ノードの[Result]属性をタイルするパターンの[TextureMap]の[UV]属性に接続します。
- 新しい[Val]ノードをクリックして選択し、[Properties]パネルでその[Float]値を変更します。[Float]を高い値に設定すると、パターンが多く繰り返され、密度が高くなり、低い値に設定すると、パターンが繰り返される回数が少なくなります。結果のパターンは、[TextureMap]ノードの[Render Swatch] アイコンをクリックすることでプレビューできます。
値 = 0.5
値 = 2.0