ノーダルシェーディング(放射編):影の部分だけに効果を適用するには
https://www.youtube.com/watch?v=UlGW0XRWhbU&hd=1
今回はMODO 801で搭載されたノーダルシェーディングの基本について解説していきます。
MODO 801ではノーダルシェーディングが搭載され、スケマティックビューでのノードによるマテリアルの設定が行えるようになりました。これによりさらに柔軟に、細かいマテリアルの設定が可能になりました。ノードによるマテリアル設定が可能になったといっても、従来のシェーダツリーによるマテリアル設定が廃止されるわけではなく、シェーダツリーによるマテリアル設定とハイブリッドで、ノードでもマテリアルの設定が行えるようになりました。
では、このノードによるマテリアルの設定を行うために追加された機能についてみていきましょう。
まずはレンダータブを見てみます。レンダータブの左下にあるウィンドウでは、プレビューで確認しながらノードを組んでいけるように、スケマティックビューが組み込まれました。スケマティックビューの追加ポップアップを見てみると、新たに「シェーダ入力」「シェーダノード」というカテゴリが追加されています。「シェーダ入力」のカテゴリには、シェーディングの情報を取得するためのノード、また「シェーダノード」カテゴリには、シェーダツリーでもおなじみの、様々なテクスチャを表現するノードがおさめられています。
では実際に、これら新しく追加されたノードを元に、ノードによりマテリアルの設定を行っていましょう。
サンプルとなるシーンには、単純にボールと床のメッシュが用意されています。床にはボールの影が落ちています。この影の部分だけ、Halftoneの効果を載せるようにしてみましょう。
まずは床のマテリアルに対して、レイヤー追加 > カスタムマテリアル > Halftoneを適用します。床全面に対してHalftoneが適用されたのがわかります。ここで影の部分に対してだけ、このHalftoneの模様を適用させてみましょう。Halftoneの模様はパターンアルファのプロパティで現れるようになっていますので、影の部分だけにパターンアルファの値を100%に適用させれば良さそうです。
では、このHalftoneマテリアルをスケマティックビューへとドラッグアンドドロップします。次に追加ポップアップ > シェーダ入力 > 照射ノードを追加します。そうすると照射ノードと、それに接続されているシェーダ入力ノードという二つのノードが自動的に追加されました。これがシェーディング情報を取得するためのノードとなります。
照射ノードはシェーディングされている箇所に対して、その箇所の色や輝度、影の情報などを取得することができます。照射ノードのプロパティを見てみると、モードが全ライトになっています。つまり、シーン内にあるすべてのライトからの照射情報を取得するということです。これを特定のライトからだけの照射情報を取得したい場合には、ライトアイテムをスケマティックビューへとドラッグアンドドロップし、照射ノードの入力部分にあるライトへと接続することになります。今回はデフォルトのままDirectional Lightしかありませんので、モードは全ライトのままにしておきます。
今回、床のどの部分が影になっているのかという情報は、照射ノードのシャドーから取得することができますので、シャドーの出力を、Halftoneマテリアルのパターンアルファへと接続してみます。
すると、もともと床に対して球体からの影が落ちていた部分に対してのみ、Halftoneのパターンの効果を表すことができるようになりました。
このように、Halftoneのマテリアル自体の設定はシェーダツリーで行い、その中のプロパティの制御をノードで行う、といったことが可能になります。