Warning: Use of undefined constant ace - assumed 'ace' (this will throw an Error in a future version of PHP) in /home/luxology/www/web_new/tipsblog/wp-content/plugins/advanced-category-excluder/advanced-category-excluder.php on line 310

Warning: Use of undefined constant ace - assumed 'ace' (this will throw an Error in a future version of PHP) in /home/luxology/www/web_new/tipsblog/wp-content/plugins/advanced-category-excluder/advanced-category-excluder.php on line 310
ノーダルシェーディング(レイタイプ編):水面下のマテリアルだけを変更するには — MODO 機能紹介・チップスサイト



MODO 機能紹介・チップスサイト このサイトでは、MODOの基本機能やチップスをご紹介していきます。

ノーダルシェーディング(レイタイプ編):水面下のマテリアルだけを変更するには

https://www.youtube.com/watch?v=tIxrp7v_my0&hd=1

MODO 801のノーダルシェーディングで追加されたもう一つのシェーダ入力ノードであるレイタイプノードを使用して、水面下にあるマテリアルだけを変更する方法をご紹介します。

このサンプルシーンでは、球体と波を表す厚みのある平面上の立方体が用意されています。この波はシェーダツリーでRipplesテクスチャでディスプレースメントを行い、透明度のあるマテリアルを適用しています。透明なマテリアルには屈折がかかっているため、波を通して球体を見ると、歪んで見えるようになっています。

この水面に通して歪んで見える球体部分にだけ、違うマテリアルを適用してみましょう。

まずは球体のマテリアルをスケマティックビューへとドラッグアンドドロップします。次に追加ポップアップ > シェーダ入力レイタイプノードを追加します。このノードは、影や反射、屈折といった様々なレイが影響している部分を取得できるノードとなっています。

マテリアルを変化させるため、レイキャストの時と同様、カラーブレンドノードを追加します。追加チャンネルモディファイヤカラー:ブレンドノードを追加します。球体全体の色を指定するため、追加シェーダノード処理Constantノードを追加し、プロパティからを設定したら、テクスチャ色カラーブレンドノードの入力カラー1へ、さらに出力カラーをマテリアルのディフューズ色へと接続します。

この時点では、他の色との組み合わせは存在していないため、入力カラー1に接続したConstantの色が、そのままディフューズの色へと設定され、球体全体の色となります。

では次に、水面下の色を設定します。水面下のマテリアルを設定するのに、新たにテクスチャノードを追加しても良いのですが、ここではシェーダツリーで波形を表現しているRipplesテクスチャをそのまま使用してみます。シェーダツリーのRipplesテクスチャを、そのままスケマティックビューへとドラッグアンドドロップします。Ripplesテクスチャのテクスチャ色を、カラーブレンドノードの入力カラー2へと接続します。

水面下にあるマテリアル部分を特定するため、ここでレイタイプノードにある屈折レイを、カラーブレンドノードのマスクへと接続します。このマスクは、その名の通り、入力カラー1入力カラー2の領域をマスクで分ける役割を持っています。

接続してみると、カラーが反転しているようですので、入力カラー1入力カラー2との接続を逆にしましょう。これで、屈折レイを通した個所、つまり水面のモデルを通して見える球体部分だけに対して、Ripplesのテクスチャが適用されるようになりました。

このように、レイタイプノードでは屈折したモデルを通して見えるマテリアル、または反射して映ったモデルのマテリアルといったように、特定のタイプのレイにヒットしたマテリアルに対してのみ、作用を及ぼすことができるようになります。

2014年4月25日