(Terragen 4) HSV色空間でのカラー調整
TG4でモデルをインポートするとき、TG4内でマテリアルやテクスチャの色を調整したいことがよくあります。
その際に、RGBではなくHSVで、特に色相をずらしたいという需要が(個人的に)めちゃくちゃあります。
TG4には、HSVのそれぞれの値からRGBを組み立てるノードがあります(Build HSV Colour) また、大気やSurface shader等に載っているカラーピッカーはHSVで色指定できます。
でも、RGBをHSVにして、かつ色を調整するようなノードはありません。
テクスチャを扱う際には大抵Image map shaderを使用しますが、ここでの色の調整もRGBだけです。
やろうと思えば、こんな感じでConstant colourノードとAdd colourノードを繋ぎ、色の加算で調節することはできますが、そんなに使い勝手がいいわけではありません。
(もしもっといい方法があるよ!!って方は是非教えてほしいです)
というわけで、任意のColorからHSVモデルで、かつスライダ入力で調整できるノードネットワークを作りました。
結構巨大。
モノはTerragen公式のユーザーフォーラムにアップしてあります。tgcファイルをダウンロードし、File→Insert clip fileでtgcファイルを指定してください。
RGB to HSV conversion
上部のINPUTブロックにあるRed/Green/Blue to scalarに、元のColorを繋ぎます。 下部のManipulatorsブロックにあるノードで、H, S, Vそれぞれをオフセットします。 最終的な出力は、右下のOUTPUTブロックから出てきます。
RGB→HSVの変換式はこちらの記事の通りです。
hooktail.org
サンプルとして、MEGASCANSからダウンロードしてきた紫陽花のモデルを使用します。
H, S, Vすべてのオフセットを0にした(何もいじっていない)場合です。
Manip. Hノードでは、Hue(色相)の値をオフセットします。0のとき+0度、1のとき+360度です。加算した結果が[0, 360]になるように丸めます。
こちらは0.25(+90度)したとき。
Manip. Sノードは、Saturation(彩度)の値をオフセットします。0のとき+0、1のとき+1です。スライダでは入力できませんが、負値を入れれば彩度を落とす方向にオフセットします。 なお、彩度は区間[0, 1]に制限されます。
こちらは0.3としたとき。
Manip. Vノードは、Value(明度)の値をオフセットします。スライダの値をそのまま加算します。こちらも、負値を入れれば明度を落とす方向にオフセットします。 なお、明度は区間[0, 255]に制限されます。
こちらは1としたとき。
以上です。
おまけ
このノードを使って作ったCGです。結構いい色になったと思う。