blender 4.1 シェーダーの Geometry ノード
すこし紛らわしいのですが、ここでの Geometry ノードは、モディファイアを自作できるジオメトリノードではなく、シェーダーノードのなかの「ジオメトリ」ノードのことです。
やや見慣れないノードかもしれませんが、すこしおもしろい使い方もできますので、紹介します。
環境 Blender 4.1.0 , Mac Mini M1 OS 14.4
Geometry Node
ジオメトリノードは、シェーダー(マテリアル)ノードのなかのひとつで、その名の通り、オブジェクトの形状に関する各種データを出力する。
ここでは、Position(位置)、Normal(ノーマル)、Random Per Island(アイランド毎の乱数)を使用してみる。
Position
Position ソケットからは、オブジェクトの位置情報が出力される。
上のままでは、「係数」が 0.5 で単に白とオレンジが均等に混じっている(ミックスされている)だけだ。
オブジェクトの上下で、白とオレンジを分けたい場合は、下のノードを追加し、シェーダーミックスの「係数」へ接続する。
「位置」から出力された位置データを、XYZ分離ノードで Z 軸(高さ)のみ抽出、範囲マッピングとカラーランプで境界の位置やコントラストを調整している。
位置でマテリアルを分ける
上の Position で境界を定める方法は、オブジェクトの位置によって変動するため、それを意図して使うのでないかぎり、あまり「実用的」な方法ではないかもしれない。
オブジェクトの位置によって変わらない方法は、他に次の方法がある。
Wave Texture(波テクスチャ)
波テクスチャによる方法。境界に「歪み」などノイズを加えられる利点はあるが、マッピングでの位置や回転の調整が、慣れないと少しわかりにくい面もある。
Texture Coordinate(テクスチャ座標)
さいきん学んだ、テクスチャ座標による方法。デフォルトの状態で、下では、上半分が白、下半分が黒で出力される。境界線はストレートだが、位置調整はわかりやすい。
Normal
同様に、オブジェクト面のノーマル(法線、面の向き)データを出力する。
ミックスシェーダーの「係数」に接続するノードは、上記とほぼ同じ。ジオメトリノードからの出力は「ノーマル」、範囲マッピングとカラーランプで境界を調整した。
上では、Z 軸のデータのみ抽出し、オブジェクト内の面の向きが、上と向いているエリアと、下を向いているエリアで異なるマテリアルを設定した。
Random Per Island
アイランド(同一オブジェクト内で、面などがつながっていない分離パーツ)ごとに、0 〜 1 までのランダムな値を出力する。
ジオメトリノードの「アイランド毎の乱数」から出力。ランダム値がゼロに近いほど上では青に、1 に近いほど赤が各分離パーツに割り当てられる。
まとめ
Position からの出力は、オブジェクトの位置を変更するだけで結果も異なるので(そもそもそのような動作が本来ですが)、アニメーションで、オブジェクトが移動するとカラーも変化、というようなすこし特殊な使い方になるかもしれません。
Normal はややおもしろいマテリアルパターンを作るのに利用できそうですし、とくにRandom Per Island はごく普通に便利に使えるでしょう。
この記事が気に入ったらサポートをしてみませんか?