Skip to content

Render Graph and Passes ​

Since 2.2.0

A real post-effect Render Graph open beside its resources and preview

Render Graph nodes declare pass sources, dependencies, temporary targets, and the final output.

A Render Graph is a directed acyclic graph of texture resources and full-screen dispatches. It describes one reusable effect, not the complete game renderer.

Input Nodes ​

InputContents
Scene ColorThe HDR scene at this position on the global effect axis, including lower-priority effects
Scene DepthCaptured opaque scene depth
Custom MaskR = mask group id / 255 for marked Photon renderers; black elsewhere
Custom DepthDepth of marked Photon renderers over the scene-depth prefill
Texture InputAn external/named texture supplied to the graph
Effect WeightMerged request weight for this execution

Pass Source and Dynamic Ports ​

A Pass runs either a Fullscreen Graph or a hand-written Core Shader. Its Texture Samplers become wire-only texture ports; exposed scalar/vec2/vec3/vec4 uniforms become value ports. Engine uniforms such as screen size, time, and matrices are bound automatically.

See Hand-written Fullscreen Shaders for the resource layout, complete GLSL example, and the available uniforms and samplers.

The editor keeps the last valid port set when a source is temporarily broken, so a failed graph reload does not delete every authored wire. The compiler still reports the invalid pass.

Target Size and Format ​

Size modeMeaning
Screen Relativescreen/effect-chain size × scale
Input Relativean earlier input/resource size × scale
Absolutefixed width × height

Use half-resolution chains for blur/bloom where quality permits. RGBA16F is the default HDR format. Lower-precision formats save memory/bandwidth; R8 is suitable for one-channel masks but not HDR color.

Temporary render targets come from a pool and live only as long as the compiled execution requires. Do not expect a pass output to persist into later frames unless an explicit external system owns it.

Output, Priority, and Auto Blend ​

Effect Output has two effect-level settings:

  • Priority places the effect on the global axis. Built-in Bloom is at 0; negative effects run before it and positive effects after it. Equal priority is ordered stably by effect path.
  • Auto Blend applies mix(scene, effect, Weight) at the end. Disable it only when the graph intentionally consumes Effect Weight and performs its own blend.

Dependency Rules ​

Every pass input must come from an input node or an earlier pass. Cycles, missing required textures, no Effect Output, invalid source graphs, and incompatible resource sizes/types fail graph compilation. Keep the graph left-to-right and name Blackboard parameters by purpose to make these errors easy to locate.

Released under the MIT License.