Use Godot's GLSL dialect for color grading and more. This is a downsized fork of Fragmented.
Find a file
2025-10-11 10:01:37 +02:00
examples Update Godot Version in template project 2025-10-11 09:41:06 +02:00
shaderlib Add modified Fragmented project files 2025-10-10 22:05:07 +02:00
src Create new project icon 2025-10-11 09:03:06 +02:00
tools Add modified Fragmented project files 2025-10-10 22:05:07 +02:00
.gitattributes Initial commit 2025-10-10 22:00:01 +02:00
.gitignore Initial commit 2025-10-10 22:00:01 +02:00
dist.sh Add Windows export preset 2025-10-10 22:51:04 +02:00
export_presets.cfg Add Windows export preset 2025-10-10 22:51:04 +02:00
LICENSE Initial commit 2025-10-10 22:00:01 +02:00
project.godot Create new project icon 2025-10-11 09:03:06 +02:00
README.md Update README 2025-10-11 10:01:37 +02:00
screenshot.png Update screenshot 2025-10-11 09:34:50 +02:00


Pigment

Use Godot's GLSL dialect for color grading and more.

screenshot

Table of Contents

Supported Platforms

  • Linux
  • Windows

You can find the latest release ...

Supported Image Formats

Format Import Export Notes
PNG exports to 8-bit RGBA
JPEG
WEBP

Usage

With Pigment, you process images by writing Shader code using Godot's GLSL dialect: GDShader.
If you want to learn GDShader, take a look at the Godot docs.

To get started, use the project template (see the Releases section of this repo) and open it in Godot. The template includes examples that you can use as a starting-point to write your own stuff.

After opening the project in Godot, start Pigment and open a .gdshader file & an image. Edit the shader using Godots Shader Editor, and hit Apply in Pigment.

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:

shader_type canvas_item;

#include "./shaderlib/oklab.gdshaderinc"

void fragment() {
	vec4 oklab = rgb2oklab(COLOR);
	vec4 oklch = oklab2oklch(oklab);
	oklch.z -= 2.0;
	COLOR = oklab2rgb(oklch2oklab(oklch));
}

Commandline interface

You can run Pigment from the commandline or scripts.

Note: Headless mode is not supported. Using the commandline interface still opens a window.

Usage

~ Pigment CLI ~
-=============-

Usage:

./Pigment <command> <args...>

Commands:

 help

  | Shows this help text.

 apply --shader PATH --input PATH --output PATH

  | Applies a shader file.

	--shader PATH  The path to the shader
	--input  PATH  The path to the image
				   Passing a folder activates batch mode
	--output PATH  Where to write the resulting image to
				   In batch mode, this must be a folder

Batch Mode

You can pass a directory to --input and --output. This will process all images in the input directory and write the output to the output directory.

Note: This is not very fast, so using it on maaany images may take some time.

Examples

./Pigment apply --shader ./examples/oklab.gdshader --input ~/Pictures/test.png --output ./output.png

Known Issues

  • On some systems, screen scaling could lead to an either blurry UI, or no scaling at all
  • CLI: Godot's --headless option is not supported