概要
2つの Surface を重ねて、1つの Surface にまとめるノードです。
画像だけを重ねるのではなく、高さ、法線、発光、ざらつき、素材ID、面IDも一緒に合成できます。たとえば、床のサーフェースに汚れパーツを重ねたり、壁の上に金属パーツを置いたり、アイソメ面の一部に別の面パーツを足したい時に使います。
出力サイズは常に base のサイズです。overlay は offset_x / offset_y で置く位置を決めます。
使い方のポイント
- 通常画像の
blendに相当するSurface版。ライティング前に部品を重ねるのが正しい 順序(ライティング後の画像を重ねると光の整合が崩れる) - 高さの扱いが鍵:
height_modeで「下地より高く置く」等を選び、重ねた部品が 出っ張るのか埋まるのかを決める - 重ねた後に
rebuild_normal_from_heightをONにすると、段差の法線が作り直されて 光の当たりが自然になる - 確認はサブマッププレビュー(H=高さ、N=法線)を切り替えながら行う
よくある失敗
- 重ねたのに光で浮き上がらない: 高さを上げていない(height_mode/offset)か、 法線を再構築していない。画像として重なっても、光は高さ・法線を見ている
- overlayが切れる: 出力サイズは常にbase基準。overlayはoffsetで位置決めし、 はみ出しは切れる
使用例
Grid Patternで作った床サーフェースをbaseにし、汚れや水たまりのサーフェースをoverlayにして重ねる。Surface Planeで作った壁に、別の小さな金属パーツのサーフェースを重ね、id_policy=OverlayVisibleで金属IDも一緒に入れる。- 壁に窓枠を貼る時は、
height_mode=下地より高くする、height_offset=0.05〜0.15、rebuild_normal_from_height=ONにする。Surface Light Previewで落ち影を強めると、窓枠が壁より少し出ているように見えます。 - 見た目だけステッカーのように貼りたい時は、
map_policy=AlbedoOnly、id_policy=KeepBaseにする。 - タイル素材として端をまたいで重ねたい時は、
wrap_xやwrap_yをONにする。
確認方法
Image to Surfaceを2つ作り、1つをbase、もう1つをoverlayに接続する。offset_x/offset_yを動かして、重なる位置が変わるか確認する。SurfaceプレビューのA、H、ID、Fを切り替え、見た目以外のマップやIDも同じ場所で重なっているか確認する。height_mode=下地より高くする、height_offset=0.1にして、Hプレビューで重ねた場所だけ明るくなるか確認する。rebuild_normal_from_height=ONにして、Nプレビューで出っ張りの端に色変化が出るか確認する。Surface Light Previewにつなぎ、発光や法線、面IDを含むサーフェースとして扱えるか確認する。
関連ノード
blend— 通常画像の重ね合わせ(Surfaceでなくてよい場合)surface_light_preview— 合成結果のライティングsurface_rebuild_normal— 法線の再構築を単独で行うsurface_set_map— サブマップの個別差し替え