LookdevKit シェーディング ノード

lookdevKit プラグインはノイズ ノード、計算ノード、ユーティリティ ノードのセットを提供します。これらはハイパーシェード(Hypershade)でプロシージャ ネットワークを作成する場合に非常に役立ちます。

これらのノードを作成するには、lookdevKit.mll プラグインが有効になっていることを、プラグイン マネージャ(Plug-in Manager)(ウィンドウ > 設定/プリファレンス(Windows > Settings/Preferences))で確認してください。

ノイズ ノードに関する詳細につては、「LookdevKit のシンプレックス ノイズ(Simplex Noise)ノード」を参照してください。

各ノードにはカラーとアルファの入力があります。カラー入力はカラー値のみに影響を及ぼし、アルファ入力はアルファ値のみに影響を及ぼします。

下記にリストするすべてのカラー(Color)ノードには、その対照として float があり(例: float 合成(float Composite)に対するカラー合成(Color Composite))、float の 3 つの入力(カラーなど)ではなく、単一の float 入力(ディスプレイス マップなど)を受け入れます。1 つのチャネルのみを操作する必要がある場合は、float ノードを使用すると効率的です。

カラー合成

レイヤ テクスチャはこのノードを使用し、いくつかの操作(Operation)モードから選択します。最適なエフェクトを作成するために、さまざまなレイヤ モードで試すことができます。

係数(Factor)アトリビュートを調整して合成エフェクトの強度をコントロールします。たとえば、特定のエフェクトをフェード オフしたり、シェーディング グラフのアスペクト比をアニメートしたりできます。

この例では、カラー合成(Color Composite)ノードを使用して空のイメージとレースのパターンを合成しています。そして、すべての異なるモードの結果を比較するためのイメージも示しています。

テクスチャ提供: www.cgtextures.com。

レイヤ モードは次のとおりです。

カラー計算

入力を合成するには、このノードを使用します。このノードはカラー合成(Color Composite)ノードと似ていますが、数値演算の選択肢により簡略化されています。

カラー補正

入力テクスチャをこのノードに接続してカラー値やアルファ値を補正します。たとえば、彩度や色のコントラストを調整する、アルファ値のゲインとオフセットを調整する、カラー チャネルやアルファ チャネルをクランプする、などを行えます。カラーとアルファは別々の入力なので、それぞれ個別に調整できます。

カラー補正(Color Correct)ノードを使って、さまざまなカラー補正設定を試すことができます。たとえば、ファイル(File)ノードを作成し、それを 3 つのカラー補正(Color Correct)ノード(それぞれが異なるカラー補正設定)に接続すると、それらを簡単に切り替えて、最も適切なエフェクトを探し出すことができます。一方、カラー補正を行わずに、同じファイル(File)ノードをネットワーク ノードの別の部分に接続することもできます。テクスチャ ファイルが変更された場合、1 つのファイル(File)ノードのパスを調整するだけで済みます。

この例では、Blinn カラー入力を異なるカラー補正出力に再接続するだけで、赤、緑、青のカラー補正を切り替えることができます。また、カラー補正を行わずに、同じファイル テクスチャをシェーダ ネットワークの別の部分に接続することもできます。

その一方で、ファイル(File)ノードのカラー バランス(Color Balance)アトリビュートを調整することによってカラー補正を行う場合、同じ結果を得るためには、3 つのカラー設定を使って 3 つのファイル(File)ノードを作成する必要があります。そのため、テクスチャ ファイルが変更された場合は、3 つのファイル ノードに対するファイル パスを調整しなければなりません。

カラー定数

このノードは、シェーディング グラフで使用する単純なソリッド カラーを出力するのに使用します。

このノードを使用すると、シェーディング グラフのさまざまな側面を手続き的にコントロールできるため、シェーダを簡単に調整、コントロールできるようになります。次のサンプル アプリケーションが含まれています。

この例では、緑のトカゲのスキン パターンを作成するために、カラー定数(Color Constant)によってシンプレックス ノイズ(Simplex Noise)で合成することが可能なソリッド グリーン カラーが作成されます。カラー定数(Color Constant)ノードを調整するだけで、パターン定数を保持したままスキンの色を簡単に変更することができます。個別のノードを使用してスキン カラーを設定することにより、カラーを変更して目的のカラーを簡単に見つけることができるだけでなく、複数のノードに接続して手続き的なコントロールを行うこともできます。

この例では、カラー定数(Color Constant)は赤チャネルを出力するチャネル(Channels)ノードに接続されています。この赤チャネルは、それぞれが異なるアルファ値のゲイン(Alpha Gain)を持つ 3 つの異なるカラー補正(Color Correct)ノードに接続されており、シンプレックス ノイズ(Simplex Noise)ノード上の 3 つの異なるアトリビュート(スケール(Scale)周波数(Frequency)周波数の比率(Frequency Ratio))をコントロールするための乗数として機能します。また、この赤チャネルは、ノイズ ノードの振幅(Amplitude)を直接コントロールします。このノイズ ノードは Blinn シェーダのバンプをコントロールします。

バンプ エフェクトを調整する場合は、カラー定数(Color Constant)を調整するだけで済みます。この例では、1 つのノードをさまざまな乗数に接続することにより、そのノードで複数のエフェクトを調整することができるということを示しています。

カラー定数(Color Constant)を調整できたら、シンプレックス ノイズ(Simplex Noise)のエフェクトを見てみましょう。

カラー マスク

マスクされた出力を生成するために、入力カラーまたは入力テクスチャとアルファ マスクとしてのテクスチャを接続します。

リーフ テクスチャ提供: www.cgtextures.com。

サンプル アプリケーションでは、拡散テクスチャ上のカラー マスク(Color Mask)の結果をレイヤするために、カラー合成(Color Composite)ノードを使用しています。

チャネル(Channels)

テクスチャ ノードを入力としてチャネル(Channels)ノードに接続し、このノードをその出力内の RGBA チャネルの書き込みに使用します。たとえば、任意のチャネル R/G/B を A に設定することにより、RGB チャネルのいずれかをアルファに出力します。

また、このノードを使用してマスクを修正することもできます。たとえば、テクスチャの異なる領域をマスクするために、赤、緑、青を使用するペイント アプリケーションでテクスチャ マップをペイントします(例: 緑でシャツをマスク、赤で帽子をマスク、青で靴をマスク)。帽子とシャツのテクスチャのみを出力するには、チャネル(Channels)ノードを作成し、赤チャネルを出力するためにチャネル A(Channel A)R に設定します。次に 2 番目のチャネル ノードを作成し、緑チャネルを出力するためにチャネル A(Channel A)G に設定します。その後、カラー合成(Color Composite)ノードを作成して 2 つのアルファ チャネルを追加します。

プリマルチプライ(Premultiply)

入力カラー RGB チャネルをアルファ(Alpha)値で乗算します。入力テクスチャをカラー(Color)アトリビュートに接続し、アルファ チャネルを持つテクスチャをアルファ(Alpha)アトリビュートに接続します。アルファ チャネル内のすべての黒いピクセルは出力で黒になり、アルファ チャネル内のすべての白いピクセルはそのまま入力テクスチャに残ります。

プリマルチプライ無し(Unpremultiply)

アルファ(Alpha)値で入力カラーを分割します。プリマルチプライされたイメージを入力テクスチャとして接続し、このノードを使ってプリマルチプライを反転します。

たとえば、カラー補正のセットを実行する前にイメージをプリマルチプライ無しにしたい場合は、もう一度プリマルチプライすることにより、透明なアルファ エッジを誤ってカラー補正することがなくなります。

この例では、テクスチャ イメージは既にプリマルチプライされています。したがって、そのカラー チャネルをクランプする前に、まずプリマルチプライ無しにする必要があり、その後、もう一度プリマルチプライします。同じアルファ出力(テクスチャ イメージからの)が、プリマルチプライ無し(Unpremultiply)ノードおよびプリマルチプライ(Premultiply)ノードの入力となります。

カラー論理

このノードは、さまざまな等価演算子(<= や != など)を使って、カラー A(Color A)カラー B(Color B)を比較します。=. 常にブーリアン値が出力されます。比較の結果、true が返された場合は 1 (白)、比較の結果、false が返された場合は 0 (黒)になります。

カラー論理(Color Logic)カラー条件(Color Condition)は、しばしば互いに連携して使用されます。

この例では、2 つの入力が等しいかどうかをカラー論理(Color Logic)で比較します。これらが等しい場合、サーフェス シェーダ(Surface Shader)に提供するカラーとして、カラー A(Color A)が使用されます。そうでない場合は、カラー B(Color B)が使用されます。

カラー条件

条件が true の場合、カラー A(Color A)が使用されます。そうでない場合は、カラー B(Color B)が使用されます。