When you convert an image to Minecraft blocks, you're reducing thousands of colours down to 16. Most converters just pick the closest available colour for each pixel and call it done. Floyd-Steinberg dithering is smarter than that — and the difference is dramatic.
The Problem With Simple Colour Matching
Imagine converting a smooth blue-to-cyan gradient. Without dithering, every pixel gets assigned either Blue Concrete or Cyan Concrete — creating a hard, ugly step between two flat bands of colour. The original gradient's smooth transition is completely lost.
This effect gets worse with skin tones, sky gradients, and shadows. Anything that relies on subtle colour shifts looks flat and posterised without dithering.
How Floyd-Steinberg Works
Here's the algorithm in plain English. For each pixel, left to right, top to bottom:
- 1.Find the closest available block colour (same as simple matching)
- 2.Calculate the error — how far off was that colour?
- 3.Spread that error to four neighbouring pixels using fixed weights
- 4.Right neighbour gets 7/16 of the error
- 5.Bottom-left gets 3/16, bottom-centre gets 5/16, bottom-right gets 1/16
- 6.Move to the next pixel, which now includes the accumulated error
By "paying forward" the colour debt to neighbours, the algorithm creates patterns of mixed blocks that the human eye perceives as intermediate colours from a distance. A stripe of alternating Blue and Cyan Concrete reads as a soft teal.
This is the same technique used in newspaper printing, old CRT monitors, and retro video games to simulate more colours than the hardware could actually display.
When to Enable It
Dithering helps most with:
- ▸Photographs — continuous tone images benefit enormously
- ▸Sky and water gradients — smooth colour transitions
- ▸Skin tones — subtle warmth and shadow variation
- ▸Anything viewed from a distance — the blending effect works best when you step back
When to Skip It
Dithering can hurt certain types of art:
- ▸Logos with flat colours — dithering adds noise to areas that should be solid
- ▸Text-based builds — lettering needs clean, sharp edges
- ▸Pixel art upscales — the source is already pixelated, no gradients to smooth
- ▸Very small blueprints (32×32 and under) — not enough pixels to see the effect
Tip
Generate the blueprint twice — once with dithering, once without — and compare. The difference is often surprising.