Skip to main content
Documentation

Effects and layers

How a node-built effect becomes a layer, how layers stack, and how their opacity and blend combine into one picture on your rig.

An effect is a small program you build by wiring nodes together. A layer runs one effect on one set of fixtures. When you stack layers and give each an opacity, Spectralite combines them bottom to top into one picture on your rig. The Timeline, the Bumps panel, and layer settings all work on this model.

What an effect is

An effect is a graph of nodes. Each node does one job, such as reading a fixture's position, making a wave, comparing two numbers, or mixing a color. You connect a node's output to the next node's input to describe the look you want. You build effects in the Node Editor. The nodes reference lists every node by category.

When you finish wiring, Spectralite compiles the whole graph into one program that runs on the GPU. The program evaluates every fixture in parallel every frame. As a result, an effect on ten fixtures costs about the same as an effect on ten thousand.

An effect on its own renders nothing. It has no fixtures and no place in your show until a layer gives it both.

What a layer is

A layer binds one effect to one fixture layout. The layout is the arrangement in space that says which fixtures the effect covers and where each one sits. If you change the effect, the same fixtures play something new. If you change the layout, the same effect lands on a different part of the rig.

Besides the effect and the layout, a layer carries the controls that decide how strongly it plays and how it sits over the layers beneath it. These controls are an Opacity, a blend behavior, and a schedule on the beat grid. The schedule turns the layer on and off in time, as beat and time describes.

The stack

The stack starts black. Spectralite applies the bottom layer first, then each layer above it in turn. Each layer reads the result so far, adds to or replaces some of it, and passes the result up. A layer affects only what is below it.

The Timeline stack: layers composited bottom to top, each with its effect and an opacity value

Two controls decide how each layer combines with the result below it: its opacity and its blend behavior.

Opacity

Opacity is a linear brightness scalar from 0 to 1. At 1, the layer contributes its full brightness. At 0, it contributes nothing. Layers have no separate mute, so an opacity of 0 is how you switch a layer off. Opacity 0.5 scales the layer's light to half before it combines with the stack. Because the scale is linear, a drag of opacity from 0.4 to 0.8 doubles the light the layer adds.

Blend

Blend is a single choice per layer between two behaviors.

Additive adds the layer's light to what is below. When you stack several additive layers, their brightness adds up. Additive blending suits washes and glows. But a tall additive stack with every layer at full can climb toward white.

Override replaces what is below, in proportion to opacity. At full opacity you see only the layer. At 0.5 you see an even mix of the layer and the stack beneath. Use override when a look must cover the others.

In plain arithmetic, with below as the picture so far and layer as this layer's contribution:

additive:  output = below + opacity * layer
override:  output = (1 - opacity) * below + opacity * layer

These two equations are the whole blend model. Spectralite has no multiply, screen, or other compositor blend modes.

Bumps sit above the timeline

Layers belong to one of two groups. Timeline layers are your running show: the chasers and moving looks that play against the beat grid in the Timeline. Bump layers are momentary hits you fire by hand from the Bumps panel.

Bump layers always composite above every timeline layer, whatever their numbered order. A bump covers the timeline stack for as long as you hold it. Within each group, the numbered order decides which layer sits on top.

How colors combine

Most layers author color the portable way: you pick a color, and the engine renders it onto each fixture's real emitters. Some layers use Channels colors instead. A Channels color names a level for each emitter. The color page explains the model in full. In short, the stack adds up every layer's request per fixture and works out one recipe at the end.

Portable layers add as light. When the sum passes what a fixture can make, the mix dims as a whole and stays on hue. Channels layers add per emitter and stop at full. At the end, each emitter gets the two shares added together and capped at full.

Take one red-green-blue fixture with two layers. At the bottom is a portable blue wash at full opacity. Above it, an additive Channels layer drives red to half. The wash lights the blue emitter, the Channels layer adds half red, and the fixture shows a violet. If you swap the two layers, the result is the same, because additive layers sum in any order. See stacking layers for what happens when the total passes a fixture's ceiling.

Where to go next

  • Beat and time explains the grid that schedules each layer.
  • Color covers device-independent color and how it lands on real fixtures.
  • The Node Editor is where you build the effect a layer runs.
  • The concepts overview links the rest of the model.