1. Docs
  2. Shader Engine Docs
  3. Understanding Shaders

Understanding Shaders

You don’t need any of this to use Shader Engine — you can browse, load, and perform without reading a line of it. But a little context makes the plugin’s tabs and errors make sense. Here’s the whole story in plain terms.

What is a shader?

A shader is a tiny program that runs on your GPU and decides the color of every pixel, every frame. That’s it. Because it runs on the graphics card, a shader can produce things that would be impossibly slow otherwise — fluid simulations, fractals, plasma, glitch, reaction-diffusion, kaleidoscopes, tunnels — all generated in real time at full frame rate.

Think of a shader as a Resolume effect that someone already wrote for you. Without Shader Engine, getting one into Resolume meant building your own FFGL plugin. With Shader Engine, you point the plugin at a shader file and it runs.

What is ISF?

ISF (Interactive Shader Format) is an open standard for packaging a shader so that hosts like Resolume know how to run it and what knobs it exposes. An ISF shader is just GLSL code plus a small block of metadata describing its inputs — sliders, colors, toggles, points.

That metadata is why Shader Engine can turn a shader’s inputs into real Resolume parameters automatically. When you load an ISF shader, each input becomes a Control you can adjust, map to MIDI/OSC, or automate. ISF is Shader Engine’s native format.

ISF files usually end in .fs (you’ll also see .isf in the wild). Shader Engine loads .frag, .glsl, and .json files too via the Shader Path picker — but the library browser lists ISF shaders by their .fs extension, so that’s the extension to use for your own files. See The Library Browser.

What is Shadertoy?

Shadertoy is a website where thousands of artists and programmers publish shaders — it’s the largest public collection of real-time shader art that exists. Shadertoy shaders are written in a slightly different dialect of GLSL than ISF expects, so they can’t be dropped into Resolume as-is.

Shader Engine bridges that gap: it translates Shadertoy GLSL into ISF on import, so a Shadertoy shader becomes something Resolume can run. Most translate cleanly; some use features (multi-buffer feedback, certain textures) that don’t map perfectly, and Shader Engine tells you clearly when a translation fails rather than pretending it worked. See Importing Shaders.

How it all fits together

Term What it is Where it shows up in Shader Engine
Shader A GPU program that draws every pixel The thing you load and perform
GLSL The language shaders are written in What you see in the editor
ISF Open shader-packaging format (GLSL + inputs) Native format; the ISF tab and LOCAL library
Shadertoy Huge public shader website (its own GLSL dialect) The SHADERTOY tab; translated to ISF on import
FFGL Resolume’s plugin standard How Shader Engine itself plugs into Resolume

The short version: Shader Engine speaks ISF natively, translates Shadertoy into ISF, and presents both to you as ordinary Resolume effects.

Next