API ガイド > ソフトウェア シェーディング ノードを作成する >

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

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

<maya/MPxNode.h>

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

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

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

- サーフェス シェーダ マテリアル
- ライト シェーダ マテリアル
- テクスチャ シェーダ マテリアル
- ディスプレイスメント シェーダ マテリアル
- ボリューム シェーダ マテリアル

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

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

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

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

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

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