A small project to fiddle around with GPU and Graphics programming, Built atop Zig and Mach
- Lookup up table (LUT) generation & application
- Dithering:
- Bayer
- Atkinson
- [TODO] Floyd Steinberg
- Blue Noise
- Nearest Neighbour Palette Lookup
- Grayscale
- Zig version 0.11.0-dev.3380+7e0a02ee2:
- linux: https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.3380+7e0a02ee2.tar.xz
- windows-x86_64: https://ziglang.org/builds/zig-windows-x86_64-0.11.0-dev.3380+7e0a02ee2.zip
- macos-x86_64 (Intel): https://ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.3380+7e0a02ee2.tar.xz
- macos-aarch64 (Apple Silicon): https://ziglang.org/builds/zig-macos-aarch64-0.11.0-dev.3380+7e0a02ee2.tar.xz
git clone --recurse-submodules -j8 http://github.com/undefinedDarkness/amnesia
cd amnesia
zig build run -- --help
Example:
./<binary> -d bayer -p palette.hex source.png
- Zig language & build system
- Mach for native webgpu bindings
- zig-clap for argument parsing
- stb for image reading / writing
Some of the math & generated images might not be completley accurate, This stuff can be kind of hard to tell