Nodes and types
The nodes you can add, and what can connect to what.
Nodes are grouped into categories:
inputs, operators, constructors, math, trig, vector, derivative, interpolation, color, blend, uv, procedural, random, oscillators, conditional, filter.
A few worth knowing:
- Switch, under conditional, picks one of up to four inputs by
index, starting at 0. - Filters blur, sharpen, find edges and more; see Filters.
The picker also has:
- value nodes (float, vec2, vec3, vec4, color, bool, uint) and the output node;
- texture nodes for images, videos and the webcam;
- Repeat and Feedback, to loop or remember the last frame; see Loops and feedback;
- Named output, to give a shader extra outputs; see Named outputs;
- presets, ready-made effects;
- frames, to group nodes.
Types
Every input and output has a type: float, vec2, vec3, vec4, color,
uint, bool or texture. Some accept any.
You can only connect compatible types, and the editor tells you when a wire isn't allowed. Good to know:
- A single number fills every part of a vector, so a
floatconnects to avec3. colorworks wherever avec3orvec4does.- Dragging from
.x,.rand similar handles gives you a singlefloat. - A texture gives you a
vec4colour, and itsuvinput takes avec2.
Port values
An input with no wire shows a control for its type, so you rarely need a value node for a constant:
- a number you can type, or drag the port's label to scrub;
x,y,zandwfields for vectors;- a swatch for colours, and a switch for
bool.
Wiring the port hides the control. The value is kept, and comes back if you remove the wire. Double-click the label to reset it to its default.
Ports that take a position, like a texture's uv, Checker's uv or a
noise's position, read the screen uv while unwired and show a muted uv
hint, so you don't need a UV node in front of them. The same goes for
every preset's uv.
Drag a wire out of an unwired port and drop it on empty canvas to create what it reads: an Input node with its value, or a UV node for a position, already wired.