Surface Stable

Fractal Dithering

Vulkan C++ GLSL

— DATE

May, 2025


— TOOLS

Vulkan, C++


— LINKS

-> Github

-> Documentation

Implementation and exploration of Runevision's Surface Stable Fractal Dithering.


The idea is to represent shades with dot densities, but have these dots map to the textures themselves rather than a filter on the viewport.


The challenge then becomes keeping every dot on screen the same size, which is where the "fractal" comes in.

adding outlines to help finer detail

dithering split in 3 rgb channels

dark dots on light surface

OUTLINES

Once I finished my implementation, I noticed many issues with this form of dithering, from stretchiness at an angle to general lack of details in indoor scenes.


I found I could help these issues by adding outlines.

You can also obtain a different effect by swapping out the dots.


Dark dots on Light surface VS Light dots on Dark surface: