シェーディング ノード プラグインを作成する
 
 
 

カスタム ディペンデンシー グラフ ノードには、以下のヘッダ ファイルを含めます。

<maya/MPxNode.h>

そして、MPxNode クラスから派生させます。独自のシェーディング ノードを Maya のプラグインとしてビルドするには、ディペンデンシー ノードの作成と同じガイドラインに従います(第 6 章「ディペンデンシー グラフ プラグイン」の ディペンデンシー グラフ(DG)ノードを参照)。

プラグインに関する特定のレンダリング情報は、レンダー時に提供される定義済みアトリビュートで要求します。レンダリング固有のアトリビュートとその名前については、 付録 C: レンダリング アトリビュートを参照してください。

Maya では現在、以下の 5 種類のシェーディング ノードを作成できます。

シェーディング ノードがコネクトされて、シェーダ ネットワークが形成されます。どのような Maya ディペンデンシー ノードでも、シェーダ ネットワークの一部にすることができます。Maya では、各シェーダ、テクスチャ、ライトに多くのエフェクトをハード コーディングする代わりに、同じ機能がユーティリティ ノードによって提供されています。これにより、同等以上のエフェクトを実装できます。またシェーディング ノードは、複数のシェーダ ネットワークに同時に貢献できます。

以下のサンプルは、Lambert ノードのカラー アトリビュートにテクスチャ ノードが入力としてコネクトされている、単純な Lambert シェーディング ノード(強調表示)の Maya のハイパーグラフ(Hypergraph)表示です。

この図は、テクスチャ座標を変換するためにチェッカー テクスチャにコネクトされた配置ノードも示しています。それぞれの矢印は、2 つのディペンデンシー ノード間のアトリビュート コネクションを表します。

シェーディング ネットワークは、シェーディング グループにコネクトしないと完成しません。シェーディング グループは、オブジェクトのリストまたは同じシェーダ ネットワークを使用してレンダーされるオブジェクトのコンポーネントのリストのいずれか一方または両方を含む、「レンダリング可能なセット」です。シェーディング グループでは、オブジェクトのリストに加えて、シェーディング ネットワークへのコネクションも維持されています。シェーディング グループは、シーン内のオブジェクトおよびレンダー方法を説明するシェーダ ネットワークの間のコネクション ポイントです。

以下は、シェーディング グループ(強調表示)にコネクトされ、デフォルトの NURBS 球体に割り当てられたシェーダ ネットワークの図です。シーン内でディレクショナル ライトが照明用に使用されていることに注意してください。

さまざまなシェーディング ノードを使用して複雑なシェーダ ネットワークを構築していくうちに、Lambert ノードの入力(強調表示)につながるすべてのコネクション、および Lambert シェーディング ノードの出力の計算済み結果が、シェーディング グループにコネクトされているのが分かります。