確認環境 : MaterialX 1.39.1
表面の凸凹の表現として「法線マップ」を使用します。
法線マップ
以下のようなレンガ模様の法線マップを使いました。
MaterialX Graph Editorでは、以下のように"image_vector3"ノードを配置し、これに法線マップのテクスチャを指定します。
"image_color3"ではない点に注意してください。
"image_vector3"ノードのFilenameでテクスチャを指定。
"normalmap_float"ノードを配置し、"image_vector3"のoutから"normalmap_float"のinにつなぎます。
これで以下のように法線マップによる凸凹が反映されました。
法線マップのタイリング指定
法線マップのタイリングを行いたい場合は、"image_vector3"ではなく"tiledimage_vector3"を使用します。
"tiledimage_vector3"の"uvtiling"でタイリングを調整できます。
法線マップのScaleを指定
法線マップの凸凹の反映の強さを調整します。
法線マップの凸凹がない状態はvector3(0.5, 0.5, 1.0)。法線ベクトルのZ値が高さを表します。
法線マップからのvector3をfg、(0.5, 0.5, 1.0)をbg、法線マップのScale値をsとした場合、以下で法線ベクトルを再計算できます。
newN = bg * (1.0 - s) + fg * s
この計算はmix_vector3ノードを使用します。
mix_vector3のfgにtiledimage_vector3からの法線ベクトル、bgに(0.5, 0.5, 1.0)、mixが法線マップのScale値として使用されます。
mixが0.0に近づくにつれて法線マップの影響が弱くなります。
1.0より大きな値の場合は凹凸が深くなります。