Blending & Compositing

Combining images with blend modes, masks, multi-layer compositing.

Combine two or more images. Foundation of layered work.

Blend#

Takes two images (A, B), combines via blend mode, mixes back into A by opacity.

The Blend node, Multi-Blend, and the Image-node layer panel all share the same 22-mode set:

Mode Effect
Normal B replaces A.
Multiply Darkens. Texture overlays, shadows.
Screen Lightens. Highlights, glows.
Overlay Darkens darks, lightens lights. Contrast boost.
Soft Light Gentler Overlay.
Hard Light Stronger Overlay.
Vivid Light Burn or dodge per pixel based on B.
Linear Light Burn or dodge linearly.
Pin Light Replaces pixels based on B brightness.
Color Dodge Brightens A based on B. Strong contrast lift.
Color Burn Darkens A based on B. Inky, saturated.
Linear Burn Like burn but linear.
Darken Picks darker pixel.
Lighten Picks brighter pixel.
Difference Absolute difference. Finds what changed.
Exclusion Softer Difference.
Add Adds values, clips to white.
Subtract Subtracts values, clips to black.
Hue A's luminance + saturation, B's hue.
Saturation A's luminance + hue, B's saturation.
Color A's luminance, B's hue + saturation.
Luminosity A's hue + saturation, B's luminance.

The brush is a separate, smaller 13-mode set: this list minus the four HSL modes, exclusion, and the three "light" variants, plus brush-only erase and smudge. See Brush Engine.

Mask#

Grayscale image controls visibility. White visible, black transparent. Any image's luminance works. Invert swaps the sense.

Standard selective-effect pattern: blur, original, mask between with painted mask.

Composite#

Up to 4 layers, straight alpha (Porter-Duff "over"). Later layers on top, no blend modes. Clean alpha layering.

Multi-Blend#

Up to 8 layers, each with own blend mode and opacity. Mini layer panel inside one node. Stacking many upstream sources without chaining Blends.

Image node's layer panel for painting into layers. Multi-Blend when layers come from upstream nodes.

Next#

  • Renderer2D: write GLSL or JavaScript Canvas2D code for live procedural rendering