Skip to content

SpatialShadery

This shader is spatialy aware and is used for multi projector installation where the use of softedge is necessary.

It is mainly used for Spatial Augmented Reality installations where there is the need for the creation of dynamic softedges.

SpatialShadery Node

Core of Spatial Augmented Reality

SpatialShadery is at the heart of SPARCK's multi-projector capabilities. It computes per-projector pixel visibility and brightness in real-time, producing smooth soft-edge blending across up to 6 projectors simultaneously. This enables dynamic softedges that automatically adapt as projection surfaces or projectors move.

Reference

The following properties can be configured for this node:

Property Type Description
shader - the shader type:
  • 'edge' is used in combination with the BlendSoftedge node
  • 'edge & blend' calculates softedge combined with the blending.
  • project to - projection type:
  • 'canvas' is used to render the projector weights
  • 'baked texture' implements all render passes for generating the final pixel.
  • BeamerA-F - Select the Beamer or SceneCapture node from where to project.
    occlusion - tries to adjust for occlusions of objects.
    depth dim - depth texture size of the occlusion pass.
    projection - use only front, back or both side of the canvas
    angle mode - angle differentiation:
  • 'viewray' will differentiate based on the angle between the surface normal and the viewray,
  • 'direction' will differentiate based on the angle between the surface normal and the camera direction
  • spread - spread factor will increase the differentiation between overlapping projections
    distance - use distance as an additional differentiator. It will show its influence when the spread is increased. (0 = no influence)
    blend bg - enables blending with the background
    interpolation - interpolation
    angle limit - angle limit (how much of the visible surface area is considered, 0 = no limit)
    angle falloff - angle-limit falloff (defines the size of the angle blend transition at the angle limit)
    bevel size - bevel size
    bevel curve - bevel curve
    bevel round - use rounded bevel
    offcolor - surface color of uncovered areas
    output - display mode of the model on which this shader is applied onto.
  • 'result' shows the final texture
  • 'content' shows the input texture
  • 'mask' shows the Beamer weights
  • power - blend power - softegde blend parameter
    luminance - luminance - softegde blend parameter
    gradient curve - adjusts the softedge curve
    gamma - gamma correction
    Inlet Type Description
    properties properties properties | use message [set <propertyPath> <value(s)>] (without node/<nodeName> at the beginning) to set internal properties
    Outlet Type Description
    texture texture texture list with depth pass

    Shader Modes

    Choosing the Right Shader Mode

    SpatialShadery offers two shader modes for different workflow requirements:

    Mode Description Use Case
    edge Outputs per-projector weight masks only Two-stage workflow with BlendSoftedge for final compositing
    edge & blend Computes edge weights AND final blended result Single-pass workflow for simpler setups

    For most Spatial Augmented Reality setups, use edge & blend with project to set to baked textures for best results.

    Typical Configuration

    Floor Projection Setup

    For a typical multi-projector floor projection:

    1. shader: edge & blend
    2. project to: baked textures
    3. Beamer A–D: Assign each calibrated Beamer
    4. projection: both side (or front side for single-sided surfaces)
    5. output: result

    Then fine-tune the blending parameters:

    • spread: Start around 0.5 — controls pixel distribution between overlapping projectors (0 = no spread, 1 = full spread)
    • distance: Add if spread alone isn't enough differentiation
    • power: Adjust soft-edge curve steepness
    • luminance: Balance brightness between projectors

    Debugging Output Modes

    Visualizing Projection Coverage

    Use the output property to debug your multi-projector setup:

    • result: Final blended output (use for production)
    • content: Shows the input texture without blending
    • mask: Shows the per-projector weight distribution — useful for visualizing which projector covers which area and identifying overlap regions

    IMPORTANT: Projection Selection

    This shader is usually applied to a Canvas which in turn is rendered (or captured) by a capture node (be it a Beamer or SceneCapture). It is of utmost importance that the 'projection' selection points to the capture node that renders the canvas this shader is applied to, otherwise this shader will not work as intended.

    Calibration is Essential

    SpatialShadery relies on accurate projector calibration to compute correct pixel visibility. Ensure all Beamer nodes are properly calibrated to get best results.



    Need help or want to suggest improvements?

    Report an issue Improve the Docs

    Last updated: 2025-12-01 | Edit this page on GitHub