下記のサンプルは両方のハードウェア シェーダについて示しており、Maya のシーン ビューをレンダリングする場合に使用されます。また、ソフトウェア シェーディング ノードについても示しており、これは Maya のソフトウェア レンダラでレンダリングする場合に使用されます。
一般に、ソフトウェア シェーディング ノードは、mental ray や RenderMan などのサードパーティ製レンダラと互換ではありません。これらのレンダラでは、フレーム全体で定数となっている特定の出力値をシェーディング ノードからピックアップしますが、オブジェクト単位、頂点単位、サンプル単位で変化する値については、固有の API にシェーダを作成する必要があります。
ディペンデンシー グラフ ノード AnisotropicShader を作成する
このノードは、サーフェス シェーダ マテリアルのスペキュラ ハイライトを変更します。
AnisotropicShader ノードの出力アトリビュートは、「outColor」と「outTransparency」です。このシェーダを使用するには、シェーディング グループで AnisotropicShader ノードを作成するか、このノードの出力をシェーディング グループの「SurfaceShader」アトリビュートにコネクトします。
ディペンデンシー グラフ ノード BackFillShader を作成する
このノードは、照光が拡散しないエリアをカラーで埋めるサーフェス シェーダ マテリアルのサンプルです。
Maya UI では、このノードへの入力はこのノードのアトリビュート エディタで見ることができます。
このノードの出力アトリビュートは「outColor」です。これは、シェーダから作成されたカラーを表す 3 つの float 型の値です。このシェーダを使用するには、シェーディング グループを指定して BackFillShader を作成するか、このノードの出力をシェーディング グループの「SurfaceShader」アトリビュートにコネクトします。
ディペンデンシー グラフ ノード brickTexture を作成する
BrickTexture ノードの出力アトリビュートは「outColor」です。このシェーダを使用するには、BrickTexture を作成して、その出力をカラー(Color)などのサーフェス/シェーダ ノードの入力にコネクトします。
このノードは、3D 空間をセルに分割するソリッド テクスチャのサンプルです。
このノードの出力アトリビュートは、「outColor」と「outAlpha」です。
このシェーダを使用するには、セル ノードを作成し、その出力をカラーなどのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード CheckerNode を作成する
このノードは、テクスチャの UV 座標を評価するサンプルです。チェック パターンが作成されます。また、このノードでは、マニピュレータで UV 座標を移動する際に、2D テクスチャ配置ノードを利用することができます。
このノードに対する入力は、2 つのカラーと 2 つのバイアス値であり、各バイアス値を使用してパターンが決定します。
CheckerNode ノードの出力アトリビュートは「outColor」です。これは、オブジェクトの UV テクスチャ座標から派生したカラーを表す 3 つの float 型の値です。このシェーダを使用するには、CheckerNode を作成して、その出力をカラーなどのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード CompositeNode を作成する
このノードは、シェーディング ノードを合成するサンプルです。
このノードに対する入力は、フォアグラウンド、バックグラウンド、バック カラー、マスク値です。
CompositeNode ノードの出力アトリビュートは「outColor」と「outAlpha」です。このシェーダを使用するには、CompositeNode を作成して、その出力をカラーなどのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード ContrastNode を作成する
このノードに対する入力は、入力カラー、コントラスト、バイアスです。コントラストとバイアスの入力は、3 つの float 型の値となるので、入力カラーの各 RGB チャンネルにそれぞれ適用することができます。
ContrastNode ノードの出力アトリビュートは「outColor」です。有効なコントラスト設定とバイアス設定から派生したカラーを表す 3 つの float 型の値です。このシェーダを使用するには、ContrastNode を作成して、その出力をカラーなどのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード DepthShader を作成する
このノードは、カメラからの距離に基づいてオブジェクトにカラーを適用する、サーフェス シェーダ マテリアルのサンプルです。
Maya UI では、このノードへの入力はこのノードのアトリビュート エディタで見ることができます。
このノードの出力アトリビュートは「outColor」です。これは、ノードから作成されたカラーを表す 3 つの float 型の値です。このシェーダを使用するには、シェーディング グループを指定して DepthShader を作成するか、このノードの出力をシェーディング グループの「SurfaceShader」アトリビュートにコネクトします。
ディペンデンシー グラフ ノード DispNodeExample を作成する
このノードは、ディスプレイスメント シェーダマテリアルのサンプルです。
DispNodeExample ノードの出力アトリビュートは「displacement」です。このシェーダを使用するには、DispNodeExample ノードを作成して、その出力をシェーディング グループの “displacementShader” 入力にコネクトします。
このノードは、タービュランスと軸を使ってテクスチャの動きをアニメートする、ソリッド テクスチャのサンプルです。
このノードの出力アトリビュートは、「outColor」と「outAlpha」です。
このシェーダを使用するには、炎(Flame)ノードを作成し、その出力をカラーなどのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード GammaNode を作成する
このノードは、ガンマの補正によってカラーを操作するサンプルです。
このノードに対する入力は、入力カラーとガンマ値です。ガンマ入力は、3 つの float 型の値を持つので、入力カラーの各 RGB チャンネルにそれぞれ適用することができます。
GammaNode ノードの出力アトリビュートは「outColor」です。このシェーダを使用するには、GammaNode を作成して、その出力をカラーなどのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード GeomNode を作成する
このノードは、オブジェクトにおけるジオメトリの XYZ 位置を評価するサンプルです。
このノードへの入力は、このノード用のアトリビュート エディタにスライダとして描画されるスケールとオフセットです。
GeomNode ノードの出力アトリビュートは「outColor」です。これは、オブジェクトの xyz の位置を表す 3 つの float 型の値です。このシェーダを使用するには、GeomNode を作成して、その出力をカラー(Color)などのサーフェス/シェーダ ノードの入力にコネクトします。
立方体環境マップを使用してピクセルあたりの Phong シェーディングを行う場合の例です。
ライトの方向は現在視点の位置に固定されています。しかし、実際のライトをトラック可能なようにプログラムを変更することができます。
複数のライトがサポートされている場合、マルチ テクスチャリングまたはマルチ パスを使用して、ライトごとに環境マップを検索する必要があります。
このプラグインは、ハードウェア レンダラに処理を追加する方法を例示します。イメージの反転やビューに対するカラーの三角形の追加といった単純な操作は、このプラグインで実行されます。
このシェーダを使用するには、プラグインを読み込んで、高精度インタラクティブ(High Quality Interactive)ビューをオンにします。
ディペンデンシー グラフ ノード InterpNode を作成する
このノードは、オブジェクトにおけるサーフェス法線を評価するサンプルです。
このノードへの入力は、2 つのカラーと、カラーの挿入を変更する入力値です。
InterpNode ノードの出力アトリビュートは「outColor」です。これは、サーフェス法線での作業の結果として補間されたカラーを表す 3 つの float 型の値です。このシェーダを使用するには、InterpNode を作成して、その出力をカラー(Color)または透明度(Transparency)などのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード LambertShader を作成する
このノードは、Lambert シェーダのサンプルであり、Maya にサーフェス シェーダ マテリアルとしてディペンデンシー ノードを構築する方法を示します。
このノードへの入力はたくさんあり、Maya UI からは、このノードのアトリビュート エディタで見ることができます。
このノードの出力アトリビュートは「outColor」と「outTransparency」です。このシェーダを使用するには、シェーディング グループ(Shading Group)を指定して lambertShader を作成するか、このノードの出力をシェーディング グループの「SurfaceShader」アトリビュートにコネクトします。
このノードは、タービュランスを使用するソリッド テクスチャのサンプルです。
このノードの出力アトリビュートは、「outColor」と「outAlpha」です。
このシェーダを使用するには、Lava ノードを作成し、その出力をカラー(Color)などのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード lightNode を作成する
このノードへの入力には、方向とカラーのほか、ライトがアンビエント、拡散、スペキュラコンポーネントに関与しているかどうかを示す boolean フラグがあります。また、シーン内の配置について、3D マニピュレータからコネクションを受け取る位置入力もあります。
LightNode ノードの出力アトリビュートは、「lightData」という複合アトリビュートです。このシェーダを使用するには、LightNode を作成し、その入力を変更して別の輝度の結果を表示します。
ユーザ定義の開始フェースに基づいてポリゴン メッシュを再インデックスし、新しい順序のメッシュを新規作成するコマンド。
このコマンドを使用するには、ポリゴン プレーンを作成して、次を実行します。
meshReorder pPlane1.vtx[5] pPlane1.vtx[23] pPlane1.vtx[9];
ディペンデンシー グラフ ノード MixtureNode を作成する
このノードは、複数の入力を評価するサンプルです。結果のカラーが生成されます。
このノードに対する入力は、2 つのカラーと 2 つのマスクであり、各カラーには、対応するマスクが関連付けられています。また、結果のカラーは、マスクが関連付けられた両カラーの混合になります。
MixtureNode ノードの出力アトリビュートは「outColor」です。これは、マスキングの値を基にして得られたカラーの混合を表す、3 つの float 型の値です。このシェーダを使用するには、MixtureNode を作成して、その出力をカラー(Color)などのサーフェス/シェーダ ノードの入力にコネクトします。
このプラグインは、サンプルのカスタム トランスフォームを実装し、X 軸の周囲でロッキング モーションを実行するために使用できます。エフェクトを例示するために、任意の回転のジオメトリをこの変換の子にすることができます。このプラグインには、2 つの要素が含まれます。
1. カスタム変換ノード -- rockingTransformNode
2. カスタム変換行列 -- rockingTransformMatrix
ロッキング モーションを実行する場合、これらのクラスを同時に使用します。ロック アトリビュートは通常のトランスフォーム アトリビュートの外に格納されることに注意してください。
// Create a rocking transform and make a rotated plane // its child. loadPlugin rockingTransform; file -f -new; polyPlane -w 1 -h 1 -sx 10 -sy 10 -ax 0 1 0 -tx 1 -ch 1; select -r pPlane1 ; rotate -r -ws -15 -15 -15 ; createNode rockingTransform; parent pPlane1 rockingTransform1; setAttr rockingTransform1.rockx 55;
このプラグインは、サンプルのカスタム トランスフォームを実装し、X 軸の周囲でロッキング モーションを実行するために使用できます。checkAndSetRotation() メソッドは、ユーザ入力に対してロックと回転の制限を適用する場合に使用します。
エフェクトを例示するために、任意の回転のジオメトリをこの変換の子にすることができます。このプラグインには、2 つの要素が含まれます。
1. カスタム変換ノード -- rockingTransformCheckNode
2. カスタム変換行列 -- rockingTransformCheckMatrix
ロッキング モーションを実行する場合、これらのクラスを同時に使用します。ロック アトリビュートは通常のトランスフォーム アトリビュートの外に格納されることに注意してください。
// Create a rocking transform and make a rotated plane // its child. loadPlugin rockingTransformCheck; file -f -new; polyPlane -w 1 -h 1 -sx 10 -sy 10 -ax 0 1 0 -tx 1 -ch 1; select -r pPlane1 ; rotate -r -ws -15 -15 -15 ; createNode rockingTransformCheck; parent pPlane1 rockingTransformCheck1; setAttr rockingTransformCheck1.rockx 10;
ディペンデンシー グラフ ノード ShadowMatte を作成する
このノードは、透過出力を通じたライト シャドウ内のエリアにのみマット/マスクを作成します。
オプションで、boolean 入力を使用し、マスクではなくカラー チャンネルにあるシャドウ エリアを確認することができます。
ShadowMatte ノードの出力アトリビュートは、「outColor」と「outTransparency」です。このシェーダを使用するには、シェーディング グループ(Shading Group)で ShadowMatte ノードを作成するか、このノードの出力をシェーディング グループの「SurfaceShader」アトリビュートにコネクトします。
ディペンデンシー グラフ ノード slopeShader を作成する
slopeShape は、slopeShader、slopeShader Behavior、slopeShaderNode の 3 つのコンポーネントから構成されています。
ディペンデンシー グラフ ノード SolidChecker を作成する
SolidChecker ノードの出力アトリビュートは「outColor」と「outAlpha」です。このシェーダを使用するには、SolidChecker ノードを作成し、その出力をカラー(Color)などのサーフェス/シェーダ ノードの入力にコネクトします。
ディペンデンシー グラフ ノード PhongNode を作成する
このノードは、Phong シェーダのサンプルであり、Maya にサーフェス シェーダ マテリアルとしてディペンデンシー ノードを構築する方法を示します。
Maya UI では、このノードへの入力はこのノードのアトリビュート エディタで見ることができます。
このノードの出力アトリビュートは「outColor」です。これは、ノードから作成されたカラーを表す 3 つの float 型の値です。このシェーダを使用するには、シェーディング グループ(Shading Group)を指定して phongNode を作成するか、このノードの出力をシェーディング グループの「SurfaceShader」アトリビュートにコネクトします。
ディペンデンシー グラフ ノード VolumeNode を作成する
このノードは、ボリューム シェーダ マテリアルのサンプルです。ボリューム シェーダ マテリアルを使用して、「light shapes」という光源にコネクトされた特殊なシェイプにカラーを適用します。そのようなシェイプのセットを作成するには、ライト フォグ(Light Fog)エフェクトを使用します。ライト フォグ エフェクトは、任意のポイント ライトとスポット ライトにそのアトリビュート エディタを通じて割り当てることができます。
VolumeNode ノードの出力アトリビュートは「outColor」です。このシェーダを使用するには、VolumeNode ノードを作成し、その出力をシェーディング グループ(Shading Group)の「volumeShader」 入力にコネクトします。シェーディング グループは、ライト シェイプにコネクトする必要があります。