■[UnrealEngine]Dotのメモ
・今回はUnrealEngine、マテリアルノード[Dot]に関するメモになります。
■ノード説明

・Dotは、2つのベクターの内積を返します。
上記サンプル図は、法線と[0/0/1](+Z=真上)を[Dot]に繋ぎ、球体メッシュで表示させたものです。
同じ向き(0度)は+1、垂直(90度)だと0、反対(180度)だと-1となります。
■アレンジ例

・[Abs]を通せば、ご覧の通り1-0-1となります。

・さらに[1-x]で反転させ、[Power]を通せば境目の線になります。

・こちらは、[Dot]を赤色でカラースケールさせたものを、灰色のベース色に加算した場合。
境目を軸に、表は赤を足し、裏は赤を引いているのがわかります。

・ではここに、先程の境目線のカラースケールを加算すると、このようになります。
この状態のマテリアルをマネキンにも貼ると、こうなります。

■ディレクションライト参照

・[Dot]のBに[SkyAtmosphereLightDirection]を入れると、レベルシーケンスにおいてあるDirectionLightの方向を取得できます。
この効果を使えば、光が当たる面や陰面・境目に個別の色を設定できます。

■カメラ参照(リム・フレネル)

・[Dot]を用いた手法でもう一つ、リム・フレネル効果について記載いたします。
法線と[CameraVector]をDotに繋ぐことで、オブジェクトの側面を暗くしたり明るくしたりします。


・こちらは、[1-X]と[Power]を加えたものです。
内容的には[Fresnel]とほぼ同じものになります。
▼補足 Fresnelノードに使用している法線ノードの考察

・法線を取得するノードとして[VertexNormal]と[PixelNormal]があります。
基本的に [VertexNormal]は低負荷で低ディティール・[PixelNormal]は高負荷で高ディティールですが、
値を寄せた[Fresnel]と比較した所、[Fresnel]は[PixelNormal]を用いている物だと思われました。
・今回は以上となります。
ライティングやリム・フレネル効果として、または別のベクトルから-1~+1を取得できる[Dot]は、多岐にわたる活用法があるノードであると考えています。
コメント