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

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

前後の決め方
order_mode
Enum
LayerOrder

通常は重ね順のまま使います。立体同士は契約深度、Isoや外部画像は手動リマップを選びます。

  • 重ね順LayerOrder
    常に重ねるサーフェースを手前にします。既存プロジェクトと同じ動きです。
  • 契約深度で自動ContractDepth
    同じカメラ角と縮尺で描いたSolid/Modelのワールド深度を自動比較します。合わない入力はエラーにします。
  • 深度を手動で揃えるManualDepth
    Iso・外部深度・2D高さを、個別の倍率と基準位置で同じ比較範囲へ揃えます。
下地の深度元
base_depth_source
Enum
DepthMap

下地の前後判定に使うマップです。Iso深度なら深度、2D凹凸なら高さを選びます。

  • 深度マップDepthMap
    Surfaceの深度マップを使います。白ほど手前です。Isoの深度マスクは通常こちらです。
  • 高さマップHeightMap
    相対高さを前後判定へ明示転用します。2Dの盛り上がりを重ねたい時だけ選びます。
重ね側の深度元
overlay_depth_source
Enum
DepthMap

重ねる側の前後判定に使うマップです。下地と同じ意味のマップを選びます。

  • 深度マップDepthMap
    Surfaceの深度マップを使います。白ほど手前です。Isoの深度マスクは通常こちらです。
  • 高さマップHeightMap
    相対高さを前後判定へ明示転用します。2Dの盛り上がりを重ねたい時だけ選びます。
下地の深度倍率
base_depth_scale
Float
1-4096–4096 / step 0.01

黒から白までを共通範囲の何単位として扱うかです。まず1、白黒が逆なら-1を目安にします。

下地の深度基準
base_depth_offset
Float
0-4096–4096 / step 0.01

下地マップの黒を共通範囲のどこに置くかです。重なり位置がずれる時に0.1ずつ動かします。

重ね側の深度倍率
overlay_depth_scale
Float
1-4096–4096 / step 0.01

重ね側の黒から白までを何単位として扱うかです。Iso同士なら下地と同じ値から始めます。

重ね側の深度基準
overlay_depth_offset
Float
0-4096–4096 / step 0.01

重ね側マップの黒を置く基準です。全体を手前へ出すなら少し増やし、奥へ送るなら減らします。

重ね側の前後補正
depth_bias
Float
0-4096–4096 / step 0.001

深度を揃えた後、重ねる側だけ全体を前後へ動かします。面がちらつく時は0.001〜0.01から試します。

同じ深度とみなす幅
depth_tolerance
Float
00–4096 / step 0.001

この幅より小さい差は同じ深度として重ね側を優先します。通常は0のまま、細いちらつきが残る時だけ0.001ずつ増やします。

深度境界のぼかし幅
depth_feather
Float
00–4096 / step 0.001

前後が切り替わる境界だけをなじませます。ドット絵は0、半透明の煙や光は0.01前後から試します。IDはぼかしません。

マップの扱い
map_policy
Enum
AllMaps

重ね順モードで、見た目以外の高さ・法線・発光なども合成するかを選びます。深度モードは全Gバッファを常に一体で扱います。

  • 全マップ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をどう合成するか選びます。深度モードは色と同じ勝者側の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