Technically, CompositorEffects
are render hooks, that can be used to render between render queues of Godot's built-in pipeline.
Conceptually, they are often used for stack-able full-screen post-processing effects.
They are simple Resources, that need to implement the low-level rendering of Godot.
The range is quite wide and can be from simple overlays and color manipulations to blurs/blooms
to more complicated effects like motion blur and outlines, the video presents:
- Digital Compression
- Analog Tape on Tube TV
- Vintage Celluloid Film
- Outline Sketch
- Impact Wave
- Blue Cinematic Bloom
- Red Cinematic Bloom
- Green Cinematic Bloom
- Yellow Cinematic Bloom
- Star Glow
- Frozen Ice
- Super Speed Lines
- Drunken View
- Bokeh Glow Blur
- Hit Impacts
- Movement
- Environments (Ice, Heat)
- PowerUp & PickUp feedback
- Player States (Health/Sanity/Paralyzed)
- Color Effects
- Outlines
- Stylizing
- Wipes
- Transitions
- Blending
- Screen Shake
- Grading
- Glow/Bloom
- Grunge/Distortion
- Noise/Glitch
CompositorEffects are typically used in a Compositor found in
WorldEnvironments or
Camera3D.
You can manually add or remove them in the effects list.
The effects can also be placed to happen in a specific stage of the pipeline. Effects that
use the depth buffer are usually best before the transparent queue, while a lot of color
effects should be run after the transparent objects.
Alternatively you can use the CameraManager's
CompositorLayout to manage
CompositorEffects via CompositorVFX.
They are Nodes that hold a CompositorVFXPreset
to add and animate multiple CompositorEffects dynamically and remove them after animating. They are ideal for VFX
that appear for a short duration, the video above uses only CompositorVFX.
Read more details in How to animate CompositorEffects?
Whenever there's a field that needs a CompositorEffect, you can click it to either create a new instance of the effect or quick load a pre-defined one in your project.
The Rokojori Action Library comes with a lot of CompositorEffects that you can use immediately:
You can write custom CompositorEffects by extending the CompositorEffect class and implementing
the function
There's also a dedicated page with code examples: How to Write Custom Compositor Effects







