Create image filters by writing shaders.
- Linux
You can find the latest releases here.
The repo includes examples. You can use them as a starting-point to write your own filters.
Just load an image using //!load
, edit the shader code and hit F5
to see the changes.
//!load <filepath>
The main image file will be read and available as the sampler2D TEXTURE
.
//!load+ <name> <filepath>
uniform sampler2D <name>;
Have a look at the place_texture.gdshader
example.
You can apply your shaderfile multiple times. At every additional step, TEXTURE
is the result of the previous step. This can be used to chain effects that cannot be easily chained otherwise.
To query the current step index, a STEP
uniform is automatically injected. If steps
is set to 0
, your shader won't be applied at all.
Example:
//!load ...
//!steps 5
void fragment() {
if (STEP == 0) {
...
} else if (STEP == 1) {
...
}
// ... and so on
}
This repo comes with a (still small) shader library including pre-written functions and more.
Have a look at the shaderlib
folder.
Here is an example:
shader_type canvas_item;
#include "res://shaderlib/hsv.gdshaderinc"
//!load ./examples/images/swamp.jpg
void fragment() {
COLOR = hsv_offset(COLOR, 0.32, 0.2, 0.0);
}