Labs Color Adjustment / Color Blend / Color Gradientノードについて


こちらの記事では、「Labs Color Adjustment」「Labs Color Blend」「Labs Color Gradient」ノードの概要および各ノードのパラメーターについてご紹介します。SideFXLabsツールのノードは、SideFX社のホームページで紹介されています。併せてご覧ください。



SideFXLabsツールのインストール手順

SideFX Labsツールセットのインストール手順については、以下の記事をご参照ください。

Houdiniの内部システムからの直接インストール
Githubからの手動インストール



Labs Color Adjustmentノードとは

このノードを使用することで、通常はカラーに対して行われる業界標準のオペレーションを使用して、モデルの頂点カラーを調整することができます。
頂点カラーのガンマ補正、または彩度を低くする場合やCalculate Occlusionノードなどの別のノードの出力を調整/拡張する場合に非常に役立ちます。

各パラメーターについて

①Group

オペレーションを特定のグループに制限します。

②Group Type

グループの種類をバーテックス、エッジ、ポイント、プリミティブから指定します。

③Custom Attribute Name

変更するアトリビュートがCdと異なる場合は、ここでオーバーライドします。

④Invert

他のすべてのオペレーションが完了した後にオペレーションを反転します(ガンマを除く)。

⑤Brightness

値を追加または削除して、頂点カラーの明るさを変更します。

⑥Contrast

formula (Cd – .5 ) * contrast + .5を使用して、頂点カラーのコントラストを増やします。

⑦Saturation

色をグレースケールにシフトするか、頂点の色を過飽和にします。

⑧Gamma

色の指数関数(Pow)

⑨Clamp

頂点カラーの値を制限します。



Labs Color Adjustmentノードの機能

最初に、Labs Color Adjustmentノードの機能についてご紹介します。今回は、Houdini18.0.416を使用しています。最初に、Houdiniを起動してSideFXLabsツールが正常に読み込まれていることを確認します。

ジオメトリネットワーク上でTestgeometry Rubbertoyを作成します。

テストジオメトリの下にLabs Color Adjustmentノードを接続します。ここからは、Labs Color Adjustmentノードのパラメーターについてご紹介します。

下画像は、[Contrast]を調整した結果です。左画像は[Contrast:0]、右画像は[Contrast:3.0]で、容易に頂点カラーを調整することができます。

下画像は[Brightness]を調整した結果です。左画像は[Brightnesst:-2.0]、右画像は[Brightness:2.0]で、頂点カラーの明るさを設定することができます。

また、Groupパラメーターでプリミティブの範囲を指定することで、指定したプリミティブにのみカラーの調整を割り当てることが可能です。

Labs Color Adjustmentノードについては以上です。次に、Labs Color Blendノードについてご紹介します。



Labs Color Blendノードとは

一般的なアルゴリズムに基づいて、2つの別々のメッシュに色データをブレンドします。

各パラメーターについて

①Group

オペレーションを最初の入力メッシュの一部に制限します。

②Group Type

グループのジオメトリタイプを指定します。

③Input 1 Attribute

最初のメッシュからブレンドするアトリビュートを設定します。

④Input 2 Attribute

2番目のメッシュからブレンドするアトリビュートを設定します。

⑤Blend Mode

色をブレンドする方法を指定します。

⑥Blend

ブレンド量を設定します。

⑦Blend Attribute

2番目のメッシュからブレンドするアトリビュートを設定します。



Labs Color Blendノードの機能

次に、Labs Color Blendノードの機能についてご紹介します。こちらも同様に、Houdini18.0.416を使用しています。
最初に、ジオメトリネットワーク上にUtah Teapotを配置して、Colorノードを接続します。色データのやり取りを行うために、2つのノードを複製して、それぞれ判別しやすいように[Teapot_A][Teapot_B]とします。

次に、Teapot_AのColorノードのColorパラメーターは好みの色を選択します。また、Classを[Point]のままにします。

同様に、Teapot_BのColorノードの色を調整します。こちらもClassは[Point]のままにします。

そして、Labs Color Blendノードを配置して、第一入力に[Teapot_A]第二入力に[Teapot_B]を接続します。また、Group Typeは[Points]に変更します。

この状態でBlendパラメーターのスライダーを調整することで2つのジオメトリの色をブレンドすることができます。これは、Group TypeをPointsにすることで、ポイント情報を基にカラーデータをブレンドしています。

また、Labs Color BlendノードのGroupパラメーターからポイントを指定します。

これによって、指定したポイントに対してのみカラーデータをブレンドすることができます。

次に、異なる形状のジオメトリを作成します。第一入力には[box]、第二入力は[sphere]を接続しています。

下動画より、異なる形状のジオメトリ同士でもBlendパラメーターからカラーデータをブレンドすることが可能です。

Labs Color Blendノードについては以上です。次に、Labs Color Gradientノードについてご紹介します。



Labs Color Gradientノードとは

頂点カラーグラデーションをメッシュ上に生成します。また、入力メッシュにカラーランプを生成します。これは、白黒または任意の色の組み合わせにすることができます。

各パラメーターについて

①Group

頂点カラーアプリケーションを特定のグループに制限します。

②Group Type

グループの種類をバーテックス、エッジ、ポイント、プリミティブから指定します。

③Axis

この軸に沿ったグラデーションの方向を設定します。

④Custom Attribute

出力アトリビュートのオーバーライドであり、デフォルトはCdに設定されています。

⑤Ramp

このランプでカラーの減衰を制御します。

Labs Color Gradientノードの機能

最後に、Labs Color Gradientノードの機能についてご紹介します。こちらも同様に、Houdini18.0.416で操作しています。
最初に、ジオメトリネットワーク上でTestgeometry Pigheadを作成して、Labs Color Gradientノードを接続します。メッシュに対して、頂点カラーグラデーションを作成するため、テストジオメトリの[Add Shader]はオフにします。

RampパラメーターのColorを調整することで、メッシュに対してカラーグラデーションを作成することができます。

また、Axisパラメーターを設定することでグラデーションをXYZ軸に対して割り当てることが可能です。

Groupパラメーターでプリミティブの範囲を指定することで、指定したプリミティブにのみカラーの調整を割り当てることもできます。

「Labs Color Adjustment」「Color Blend」「Color Gradient」ノードについては以上です。
これらのノードを使用することで、頂点カラーの調節やカラーデータのブレンドおよびカラーグラデーションの作成を容易に行うことが出来ます。



■おまけ

上記で、ご説明致しましたLabs Color Blendノードは、Cdアトリビュートを持ったオブジェクト同士のカラーデータをブレンドします。
従来のCdアトリビュートでは、Colorノードを使用することで作成することができます。

その方法を動画にまとめましたので、ご興味があれば、ご覧ください。

以下の動画では、
・Colorノードを使用してCdアトリビュートを作成する手順
・ポイント、プリミ ティブ等のタイプ毎のCdアトリビュートの作成
・Attribute Transfer SOPを使用して、他のオブジェクトにCdアトリビュートを転送する方法

などを簡単に説明しています。

この動画の重要な部分には、一部字幕も載せていますので、分かりやすいと思います。