Back to Node List

Surface Composite

surface_composite

Places one Surface over another and composites color, maps, material IDs, and face IDs together.

Reviewed
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Input Ports

NameTypeDescription
下地
base
Surface
Required
下地になるサーフェースです。
重ねるサーフェース
overlay
Surface
Required
上に重ねるサーフェースです。
マスク
mask
Image
重ねる場所を制限する任意のマスクです。

Output Ports

NameTypeDescription
サーフェース
surface
Surface
合成したサーフェースです。
プレビュー
preview
Image
見た目の画像を確認するプレビューです。

Parameters

NameTypeDefaultRangeDescription / Options
ブレンド
mode
Enum
Normal

重ねるサーフェースの見た目の色をどう混ぜるかです。

  • 通常Normal
    重ねるサーフェースの色をそのまま載せます。
  • 乗算Multiply
    下地を暗くします。影や汚れ向けです。
  • スクリーンScreen
    下地を明るくします。光やハイライト向けです。
  • オーバーレイOverlay
    コントラストを強めます。
  • 加算Add
    色を加算します。発光表現向けです。
  • 減算Subtract
    上の色を差し引いて暗くします
  • 差の絶対値Difference
    2色の差を取り出します。違い比較や特殊効果に有用
  • 比較(暗)Darken
    チャンネルごとに暗い方の色を残します
  • 比較(明)Lighten
    チャンネルごとに明るい方の色を残します
  • ソフトライトSoftLight
    やわらかいコントラスト。淡い陰影や色付けに有用
  • ハードライトHardLight
    強いコントラスト。はっきりした光と影に有用
  • 覆い焼きColorDodge
    下の色を強く明るくします。強い光の表現に有用
  • 焼き込みColorBurn
    下の色を強く暗くします。深い影の表現に有用
不透明度
opacity
Float
10–1 / step 0.01

重ねるサーフェース全体の強さです。

オフセットX
offset_x
Int
0-4096–4096

重ねるサーフェースを横にずらす量です。

オフセットY
offset_y
Int
0-4096–4096

重ねるサーフェースを縦にずらす量です。

マップの扱い
map_policy
Enum
AllMaps

見た目以外の高さ・法線・発光なども一緒に合成するかです。

  • 全マップAllMaps
    見た目、高さ、法線、発光などをまとめて合成します。
  • 見た目だけAlbedoOnly
    見た目の色だけを合成し、他のマップは下地のまま残します。
高さの合成
height_mode
Enum
OverlayMap

重ねるサーフェースが高さマップをどう変えるかです。

  • 重ねるマップを使うOverlayMap
    重ねるサーフェースの高さマップを、そのまま下地になじませます。従来の挙動です。
  • 下地より高くするRaised
    重ねた部分を下地より高くします。壁に窓枠、床に敷石を付ける時に向きます。
  • 高さを足すAdd
    下地の高さに、重ねるサーフェースの高さを足します。
  • 高い方を使うMax
    下地と重ねるサーフェースを比べて、高い方を使います。
重ねる高さ
height_offset
Float
0-1–1 / step 0.01

重ねた部分を下地からどれくらい出すかです。窓枠や装飾を少し手前に出したい時に使います。

重ねる高さの強さ
overlay_height_scale
Float
10–4 / step 0.01

重ねるサーフェースが持つ高さマップをどれくらい効かせるかです。

高さから法線を作り直す
rebuild_normal_from_height
Bool
false

合成後の高さマップから光の当たり方用の法線マップを作り直します。出っ張りのハイライトを合わせたい時に使います。

IDの扱い
id_policy
Enum
OverlayVisible

素材IDと面IDをどう合成するかです。

  • 重ねた場所を使うOverlayVisible
    重ねたサーフェースが見えている場所では、素材IDと面IDも上書きします。
  • 下地を残すKeepBase
    素材IDと面IDは下地のまま残します。
マスクの見方
mask_source
Enum
Alpha

マスク画像のどの値で重ねる強さを決めるかです。

  • アルファAlpha
    透明度で重ねる場所を決めます。
  • 明るさLuminance
    白黒の明るさで重ねる場所を決めます。
  • Red
    赤チャンネルで重ねる場所を決めます。
  • Green
    緑チャンネルで重ねる場所を決めます。
  • Blue
    青チャンネルで重ねる場所を決めます。
左右ループ
wrap_x
Bool
false

重ねるサーフェースの左右端がつながっているものとして読みます。

上下ループ
wrap_y
Bool
false

重ねるサーフェースの上下端がつながっているものとして読みます。

Overview

Combines two Surface values into one Surface.

It composites not only the image but also height, normals, emission, roughness, material IDs, and face IDs. Use it to place grime over a floor Surface, metal parts on a wall, or another face part onto part of an isometric face.

Output dimensions always match base. Position overlay with offset_x / offset_y.

Usage tips

  • This is the Surface equivalent of image blend. Composite parts before lighting; combining already-lit images breaks lighting consistency.
  • Height handling is key. Use height_mode to choose whether the part sits above the base and determine whether it protrudes or sinks in.
  • Turn rebuild_normal_from_height ON after compositing to rebuild normals across the step for more natural lighting.
  • Inspect the result by switching submap previews such as H for height and N for normals.

Common pitfalls

  • The overlay does not rise under lighting: its height was not raised through height_mode/offset, or normals were not rebuilt. It may overlap visually, but lighting reads height and normals.
  • overlay is clipped: output dimensions always follow base. offset positions the overlay, and overflow is cropped.

Examples

  • Use a floor Surface from Grid Pattern as base, then overlay a grime or puddle Surface.
  • Place a small metal-part Surface over a wall from Surface Plane, using id_policy=OverlayVisible to include its metal ID.
  • When attaching a window frame to a wall, use height_mode=下地より高くする, height_offset=0.05〜0.15, and rebuild_normal_from_height=ON. Strengthen cast shadows in Surface Light Preview to make the frame appear slightly raised.
  • For a flat sticker-like overlay, use map_policy=AlbedoOnly and id_policy=KeepBase.
  • Turn wrap_x or wrap_y ON to composite across an edge in a tileable asset.

How to check the result

  1. Create two Image to Surface nodes and connect one to base, the other to overlay.
  2. Change offset_x / offset_y and confirm that the overlap position moves.
  3. Switch the Surface preview among A, H, ID, and F, confirming that maps and IDs overlap in the same place as the visible image.
  4. Set height_mode=下地より高くする and height_offset=0.1, then check in the H preview that only the overlay becomes brighter.
  5. Set rebuild_normal_from_height=ON and check for color changes at the raised edge in the N preview.
  6. Connect Surface Light Preview and confirm that the composite behaves as a Surface containing emission, normals, and face IDs.

Related nodes

  • blend — composite ordinary images when a Surface is unnecessary
  • surface_light_preview — light the composite result
  • surface_rebuild_normal — rebuild normals as a separate operation
  • surface_set_map — replace individual submaps
Back to Node List
Surface Composite — PixPipeline Node Reference