← Back to Tutorials

Your First Video Effect

Beginner Composer

Process a texture through Bloom and Feedback to create glow and trail effects.

What you'll build

Take an existing texture and apply two GPU effects to it: a glow (Bloom) and a motion trail (Feedback). You'll learn how GPU effects chain together and how to tune their parameters.

Operators used

Operator Domain Role
NoiseTexture GPU Generates animated Perlin/Simplex noise
Bloom GPU Adds glow to bright pixels
Feedback GPU Composites current frame over previous frame
video_out Displays the final texture

Step 1: Create a source texture

A video effect processes an existing texture. Start with NoiseTexture as a source.

Add NoiseTexture. Connect noise/texturevideo_out/input. You should see animated noise. The noise self-animates using its built-in speed parameter.

Step 2: Add Bloom

Bloom extracts bright pixels and blurs them to create a glow. Add Bloom.

Chain it between the noise and the output: 1. Disconnect noise/texturevideo_out/input 2. Connect noise/texturebloom/input 3. Connect bloom/texturevideo_out/input

The noise now glows on its bright regions.

Tune Bloom: - threshold (default 0.8) — raise it to glow only the brightest spots; lower it to glow more - radius — spread of the blur kernel - passes — more passes = wider, softer glow (costs GPU time)

Step 3: Add Feedback

Feedback composites the current frame over the previous frame with a slow decay. Add Feedback.

Chain it after Bloom: 1. Disconnect bloom/texturevideo_out/input 2. Connect bloom/texturefeedback/input 3. Connect feedback/texturevideo_out/input

The noise now leaves glowing trails that decay over time.

Tune Feedback: - decay — how quickly the trail fades (lower = longer trails) - zoom — subtle zoom each frame creates a pulsing tunnel effect - rotation — small values create a slow spin

What's happening

NoiseTexture → Bloom → Feedback → video_out

Each GPU operator takes a gpu_texture input and outputs a new gpu_texture. Effects chain by passing textures downstream. The chain is evaluated on the GPU on every frame.

Feedback is special: it reads from its own previous output, creating a recursive loop. This is safe in Vivid — the graph compiler detects the feedback edge and routes it through a one-frame delay buffer.

Tip: Effect order matters

Bloom before Feedback creates glowing trails. Feedback before Bloom would create trails first, then glow everything including old trail residue — a more intense, accumulative look. Try both.

Next steps