シェーダーツリーを進める

シェーダーツリーは非常に強力であり、非常に柔軟です。この柔軟性が、時として扱いにくいと感じる可能性があります。ユーザーのフィードバックに基づいて、マテリアルやテクスチャをシーン内の任意のレベルで、必要に応じてグローバルに適用できるようにすることが設計要件でしたが、「大きなパワーには大きな責任が伴う」と言われています。

この柔軟性の結果、シェーダーツリーを整理しておくために注意が必要であり、プロジェクトの複雑さが増すにつれて、必要な労力が増加します。シェーダーツリーでレイヤーを操作する方法とそれぞれが何を提供するかを理解することは、シェーダーツリーが提供するパワーを活用する上で重要な出発点です。基本については、 シェーダーツリーシェーダーツリーアイテムレイヤー 、およびレイヤー効果。これらのページで説明されている基本に加えて、シェーディングサーフェスのいくつかのより高度な側面についての追加情報を追加することが重要でした。 Modo

グループとグループ

シェーダーツリーで最も重要な項目の1つは、 材料グループ項目。の中にAdd Layerシェーダーツリーの機能です。これは単にグループと呼ばれますが、実際のグループとの混乱を避けるために、ここではマテリアルグループと呼びます。マテリアルグループは複数の目的を果たし、そのいくつかの設定を理解することは、それらを最大限に活用する上で非常に重要です。

マテリアルグループアイテムをツリーに追加すると、それらは単に空のコンテナになります。これらのコンテナーは、他のグループのコレクションを含む、任意の数のレイヤーを保持できます。この場合、それらは厳密に組織的なデバイスであり、シーンに階層を提供します。たとえば、シーン内のアイテムに同様のマテリアルを関連付けて、複雑なツリーをナビゲートしやすくすることができます。これは、ツリーでいくつかのレイヤーを選択し、 Ctrl+Gキーボードショートカット。類似したマテリアルを未定義のマテリアルグループ項目の下にグループ化します。

マテリアルグループアイテムは、マスクを使用してサーフェスにマテリアルを適用するための主要な手段も提供します。マテリアルグループアイテムの名前付きアイテムおよび/またはポリゴンタグから選択するPropertiesパネル、マテリアルグループ内のコンテンツ(またはレイヤー)は、シーン内でその特定のタグを持つジオメトリサーフェスにのみ影響を与えるように制限できます。これはを使用してマテリアルタグを適用するたびに自動的に行われます。 Mキーボードコマンド。押すMを開きますPolygon Set Materialダイアログで名前を定義して、 OKシェーダーツリーに新しいマテリアルグループアイテムを生成し、自動的にTag TypeそしてTag Name定義された特定の名前へのオプション。これは非常に簡単な手順ですが、Material Groupが提供するパワーの影響は計り知れません。

マスキングサーフェス

マテリアルグループはレンダリング時にジオメトリに表面を割り当てる簡単な方法ですが、ポリゴンタグに依存しているため、マテリアルグループだけで可能なことは制限されます。すべてのサーフェスの境界がハードエッジのポリゴン境界であるとは限りません。Modoは、テクスチャをマスクするいくつかの方法を提供して、より細かい制御を提供します。シェーダーツリーのレイヤー機能と組み合わせたマスキング機能により、非常に複雑なサーフェスを簡単に簡単に作成できます。アルファ透明度マスクがテクスチャレイヤーに適用されるたびに、下にあるレイヤーが表示されます。

グループマスク

グループマスクは、レイヤー効果オプションであり、 Effectsシェーダーツリーの列。複雑さやレイヤーの数に関係なく、マテリアルグループ全体のコンテンツを単一のテクスチャアイテムを使用してマスクできます。テクスチャは、次のような手続き型テクスチャにすることができます。 ノイズ手順レイヤー、イメージマップ、または頂点マップテクスチャ層。イメージマップを使用すると、ピクセルレベルの制御が非常に細かくなります。これらの画像は、画像エディタを使用して外部で作成するか、直接Modo組み込みのペイントツールを使用します。勾配を使用すると、多くの興味深い可能性が開かれます。この場合、勾配や入射角などの多数の勾配入力パラメーターによってマテリアルグループをマスクできます。

注意:  Advanced 3Dビューポートで複雑なマテリアル設定を直接レンダリングし、リアルタイムで変更を加えることができます。Advanced 3Dビューポートは、 Group Masks複数のマテリアルレイヤーをマスクできます。
Advanced 3DビューポートはグループマスクをサポートしますBlend ModeそしてOpacity変更により、ほとんどの場合、アドバンスト3Dビューポートでのマテリアルの表現と、 Modoビューポートのプレビュー
詳細については、 3D(OpenGL)ビューポート

レイヤーマスク

レイヤーマスクの結果はグループマスクのマスキング機能に似ていますが、その適用はシェーダーツリー内の単一レイヤーに限定されており、より詳細な制御が可能です。レイヤーマスクを適用するには、2つの方法があります。

を選択しますLayer Maskエフェクトをかけ、マスクするレイヤーのすぐ下にレイヤーを配置する、または

レイヤーをターゲットレイヤーにドラッグアンドドロップして、レイヤーマスク効果として自動的に定義します。

テクスチャレイヤーの設定を変更して、この種類のマスクの可視性を切り替えることができます。 +レイヤー名の前のアイコン。

アルファチャンネル

Modoインポートされたイメージマップレイヤーに埋め込まれたアルファチャネルまたはレイヤー透明度を開き、尊重します。一部のアーティストは、イメージマップの透明な領域の表面が透けて見えないことに驚いているため、実際のアプリケーションは混乱を招く可能性があります。それの訳はModoイメージマップのアルファチャネルをテクスチャレイヤーとして尊重します(下面のシェーディングを明らかにします)が、二重の役割を果たしません。 Transparency (またはStencil/Dissolve)デフォルトとして設定した場合のサーフェスDiffuse Color効果。これらの効果を実現するには、画像をLayerまたはGroup Mask、または画像のアルファチャネルを次のように割り当てます。 TransparencyまたはDissolveを使用してAlpha Only 画像のプロパティのオプション。または、単にRGBA拡散色と透明度の両方を指定するレイヤー効果( Stencil)単一のテクスチャレイヤーを使用します。

方法のおかげでModoは、イメージマップのアルファ透明度を処理します。これにより、任意の数の透明イメージをレイヤー化し、結果を単一の複雑な表面に結合することが可能になります。ペイントするときでも、透明な画像レイヤーを使用して、アルファチャネルを持つ複数のイメージマップレイヤーをスタックすることにより、Photoshopのようなマルチレイヤー画像が可能です。シェーダーツリーでレイヤーを選択して、ペイント中にブラシストロークを受け取るイメージを指定し、他のレイヤーには影響を与えません。

アイテムマスク

Material GroupアイテムのPropertiesパネルでは、他の設定に加えてアイテムマスクを指定できます。アイテムマスクは、さまざまなポリゴンタグの束に頼ることなく、画像またはシェーディングの適用を単一のメッシュアイテムレイヤーに制限するのに非常に役立ちます。これにより、インスタンス化されたアイテムの名前を単に指定するだけで、異なるシェーディングまたはイメージマップをインスタンスに適用できます。 Item Material Groupアイテムのプロパティ。インスタンスは通常、継承された親アイテム名の後に括弧内の数字が続きます。単純なアイテム選択は、どのインスタンスがマスクのターゲットであるかを示します。アイテムマスクを使用すると、シーン内の他の同じ名前の(タグ付き)サーフェスを上書きする個別のアイテムにシェーディングを適用することもできます。

レイヤリングサーフェス

単一のマテリアルに画像とテクスチャを重ねるだけでなく、興味深い結果を得るためにさまざまなタグを重ねることもできます。ポリゴンは1つのパーツまたはマテリアルタグしか持つことができませんが、両方のタグを同時に持つことができ、無制限の数の選択セットに属することができます。タグ付けされたポリゴンは、グループ化が同じである必要はありません。したがって、2つの別々のマテリアルサーフェスからポリゴンにまたがる選択セットを作成し、それをマスクとして定義して、2つのサーフェスにまたがるイメージを適用できます。2つの通常のサーフェスにストレートマテリアルタグを使用してから、カスタムUVを使用して選択セットに小さい領域を割り当てます。ラベルなどを貼るのもとても便利です。

シェーダーツリーのクリーンアップ

場合によっては、シェーダーツリーに不要なレイヤーを削除する必要があることがありますが、削除するレイヤーを選択するのは難しい場合があります。これらの追加レイヤーは、実験またはマテリアルプリセットの過剰なコピーの結果である可能性があります。

Purge Unused Materialsコマンドは、割り当てられていないポリゴンタグを参照しているものも含め、最終的なレンダリングイメージに寄与しないすべてのシェーダーツリーマテリアルやテクスチャレイヤーを削除します。ポリゴンは単一のマテリアルまたはパーツタグしか保持できないため、ジオメトリが削除されるか、新しいタグが割り当てられると、これらが発生する可能性があります。アイテムレイヤーを別のシーンにシーンに移動すると、追加のレイヤーが追加される場合があります。

パージをアクティブにするには、メニューバーのコマンドを選択します。 Texture > Purge Unused Materials

ターゲット制御

シェーダーツリーの紛らわしい側面の1つは、デフォルトですべてのシェーダーツリーの最上部に表示されるベースシェーダーアイテムです。ベースシェーダーは、レンダリングイメージの可視性、シェーディングレート、およびその他の多くの側面を制御します。ある意味では、ゲートからレンダラーに渡される情報と、評価のために渡される情報の量を制御するゲートの兵士のようなものです。シェーダーツリーのグローバルな性質により、ベースシェーダーが上部にあり、マスクが解除されているため、下位レベルのシェーダーが適切にマスクされ、上位に配置されていない限り、その下に追加されたシェーダー項目の設定は、ベースシェーダーの設定によって上書きされます。シェーダーツリーで。

シェーダーツリーレイヤーとそれらの位置に基づいて評価するグループマテリアルマスクのジャグリングは、特に複雑なシーンで混乱する可能性があります。場合によっては、単一のオブジェクトをカメラから見えなくする簡単な方法を探しているだけです。これを行うために、アイテムシェーダーが導入されました。これらは、シェーダーツリーに表示されない唯一のシェーダーツリーレイヤーであることを除いて、すべての点で通常のシェーダーアイテムと同じです。これらは直接割り当てられ、 Item List。彼らのいずれかControlオプションが有効になっている場合、これらの設定は、評価時に常にシェーダーツリーの設定をオーバーライドします。

アイテムシェーダーを割り当てるには、 Item List、ターゲットメッシュアイテムレイヤーを右クリックして、 Create Item Shaderメニューからオプション。アイテムシェーダーを選択すると、 Propertiesパネル。次のような特定のコントロールをターゲットにするにはVisibility、すべてを無効にするControl以外のオプションControl Visibility 、次にシングルを無効にしますVisible to Cameraオプション。これにより、対象のアイテムがカメラから見えなくなりますが、まだ影を落とし、反射に現れます。Item Shaders適用が困難であった多くの側面を簡素化します。

その他の注意事項

イメージマップやプロシージャルなどのテクスチャアイテムは、ライトや環境にも追加できることを忘れがちです。彼らを調整することによってProjectionタイプとEffect設定、興味深い効果の全範囲が達成可能です。テクスチャレイヤーは、サーフェスジェネレーターやファーなど、他のタイプのレイヤーをマスクするために使用できます。サーフェスジェネレータまたはファーのマスクとして使用できない唯一のレイヤは、オクルージョンレイヤです。これは、計算するために光線を発射する必要があるためであり、これはレンダリング時にのみ発生し、意図した結果を生成するには評価プロセスでは遅すぎるためです。このような場合は、オクルージョンレイヤーをイメージマップテクスチャに焼き付けてから、オクルージョンの代わりにイメージマップを再適用します。