Create and apply image filters using Godot's GLSL dialect.
Find a file
2024-12-30 18:34:51 +01:00
assets Added an error indicator and error message box and refactored some code in the process - implements #21, prepares #16 2024-12-26 22:18:18 +01:00
build-template Add a custom godot build template with reduced features for smaller exports - implements #15 2024-12-22 21:55:33 +01:00
dist Add export presets for Linux and Windows 2024-06-05 20:50:48 +02:00
examples shaderlib: Add alpha_blend function, extend place_texture example, update autocomplete - implements #23 2024-12-30 17:02:19 +01:00
scenes Improve size of status indicator 2024-12-29 20:13:59 +01:00
shaderlib shaderlib: Add alpha_blend function, extend place_texture example, update autocomplete - implements #23 2024-12-30 17:02:19 +01:00
src Update the window title when saving the shader file - fix #26 2024-12-30 18:34:51 +01:00
.gitattributes Add project files 2024-06-04 18:31:04 +02:00
.gitignore Add a custom godot build template with reduced features for smaller exports - implements #15 2024-12-22 21:55:33 +01:00
export_presets.cfg Add a custom godot build template with reduced features for smaller exports - implements #15 2024-12-22 21:55:33 +01:00
LICENSE Add project files 2024-06-04 18:31:04 +02:00
project.godot Added an error indicator and error message box and refactored some code in the process - implements #21, prepares #16 2024-12-26 22:18:18 +01:00
README.md shaderlib: Implement place_texture() and provide an example, replace mix.gdshader example; implements #17 2024-12-28 00:00:46 +01:00
screenshot.png Added a new screenshot 2024-12-19 19:01:49 +01:00

Fragmented

screenshot

Create image filters by writing shaders.

Supported Platforms

  • Linux

You can find the latest releases here.

Usage

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 TEXTURE using the //!load directive

//!load <filepath>

The image file will be read and available as the TEXTURE variable.

Load additional images

//!load+ <name> <filepath>
uniform sampler2D <name>;

Have a look at the place_texture.gdshader example:

shader_type canvas_item;

#include "res://shaderlib/transform.gdshaderinc"

//!load ./swamp.jpg
//!load+ img2 ./grass.png

uniform sampler2D img2: repeat_disable, filter_nearest;

void fragment() {
	vec4 grass = place_texture(img2, UV, TEXTURE_PIXEL_SIZE, vec2(0, .47), vec2(1));
	grass.rgb += (vec3(0.03, 0.07, 0.11) - ((UV.y - .8) * 0.15)); // color correction
	COLOR.rgb = mix(COLOR.rgb, grass.rgb, grass.a);
}

Shaderlib

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 on how to use it (the hsv.gdshader example):

shader_type canvas_item;

#include "res://shaderlib/hsv.gdshaderinc"

//!load ./swamp.jpg

void fragment() {
	COLOR = hsv_offset(COLOR, 0.32, 0.2, 0.0);
}