今回は”mib_color_mix”ノードをやります。
名前のとおり、カラーをミックスするノードです。最大8レイヤまでミックスできます。
ミックスする方法は加算や乗算など7つのモードから選べます。
基本となるベースカラーがあり、その上に重ねていきます。
layeredTextureノードと似たようなものと思えばいいのでは。
アトリビュートを見ていきましょう。
Num
ミックスする色の数です。指定した数だけレイヤが有効になります。ベースカラーは含まれません。たとえば、Num=1の場合、Mode0、Weight0、Color0が有効に、Num=3の場合はMode2、Weight2、Color2までが有効になります。
Mode
重ね方のモードです[Blend],[mix],[add],[bound add],[multiply],[bound multiply],[replace alpha]の全7種類です。詳しくは後述
Weight
ウェイト。ある意味、各レイヤのアルファチャンネルのようなもの
Color
Bloendするカラー。
Color Base
ベースカラー。この上に他のカラーがミックスされていきます。
Mode、Weight、Colorはそれぞれ0~7までナンバリングされており、それぞれの数字がレイヤに対応しています。たとえば、Mode0、Weight0、Color0で1セットですね。
あと、レイヤの重なる順番はBaseの上に0、1、2・・・7という順番。
では各Modeを確認して行きましょうかね。
検証にあたって下のようなサンプルシーンを用意しました。
テクスチャとしてこれも用意しました。
BaseLayerをColorBaseにLayer1をColor0にコネクトしました。layer1は丸くアルファを持っています。
[A]: 前の結果
[B]: 現在のカラー
[w]: 現在のウェイト[a]:アルファ
Blend
[R = A ・ (1 – Ba).・w + B・w] 上の式の通り。言葉で説明が難しいです。Mix
R = A .・(1 – w)+ B・ w
うーん、これも上の式より分かりやすく言葉にできないw
Add
R = A + B .・w
これはイケる。加算。
bound Add
R =bound(A + B・ w, 0, 1)
範囲つき加算。加算の結果が、0~1(0~255)の範囲に制限されます。
普通のAddだと1より明るい白が可能だけど、bound Addだと1より明るい白はない。
16bit halfとか32bit floatとかのHDR画像で顕著に分かるのでは。
multiply
R = A .・(B ・ w)
乗算ですね。
bound multiply
R = bound(A . B・w, 0, 1)範囲つき乗算です。bound addの乗算版。
repalece
Rrgb = Argb ; Ra = Ba
サンプルでいえばRGBはBaseLayerのをつかって、アルファはLayer1のをつかうということ。
ただ・・・つかったことがありません。
Mayaは2012の英語版を使用しています。
最新のバージョンとは異なる可能性がありますのであしからず。
コメント