2.9 KiB

Pigment
Use Godot's GLSL dialect for color grading and more.
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