こちらの記事では、「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アトリビュートを転送する方法
などを簡単に説明しています。
この動画の重要な部分には、一部字幕も載せていますので、分かりやすいと思います。