水のマテリアル研究⑩ ノーマルマップの合成
「これまでの研究で、M_LakeWater_01マテリアルの構造はだいたい解明できたけど、もう1つちょっと変なのが残ってる」
「2つのノーマルマップをAddノードで接続してる。これは2つの法線ベクトルの中間、足して2で割ったような角度になる。同じのを2つ足した場合角度は変わらない。なんでそうなるかというとこんな風な感じな計算結果になるから」
「XYZの値が問題じゃなくて、そのベクトルが向いてる方向だけがノーマルマップで必要になる。ここではY軸の分は省略してるけど原理は同じ」
妹「足して2で割るんじゃなくて、足すだけで終わりなの?」
「割ってもいいんだけど、角度としては同じだから、ベクトルの長さが2か1かというだけの問題で、それはどっちでも計算上問題ない。割るとその分遅くから、このマテリアルでも割ってないんだと思う」
妹「図の最後のとこにある、Xだけ足した場合っていうのは?」
「これが最初わからなかった部分なんだけど、違う形のノーマルマップを合成するのはわかるけど、その前にMultiplyで黄色と掛け算してるのはなんなんだろうなあと」
「これも例によって数字の計算なんだけど、(R)1.0, (G)1.0, (B)0.0 を掛けると、RとBは1を掛けても元のままで、Bだけ0になる。赤と緑だけ残る。それをベースカラーにつなぐと、こういう毒の沼みたいな画像になる」
妹「気持ち悪いですな……」
「途中結果だから。でこれを元の画像にAddで足すと、赤と緑の分の角度が強く反映される。中間じゃなくて、毒の沼寄りの角度になる」
素の状態
元のとRGB1,1,0を掛けた画像をAdd
元のとRGB5,5,0を掛けた画像をAdd
妹「デコボコがすごくなってるのはわかる」
「デコボコがない真っ直ぐな状態は、赤も緑も0だから、そこをプラスかマイナスに強調するとデコボコが大きくなる。ただ角度は真横以上にならないから、これに100とか1000とか掛けても変わらない。今回はただ計算してみただけだから、単純にデコボコを深くしたいなら、先日紹介したNormalMap-Onlineのオプションでやった方が簡単だし速いんだけど」