[HN Gopher] Dithering - Part 2: The Ordered Dithering
___________________________________________________________________
Dithering - Part 2: The Ordered Dithering
Author : ChrisArchitect
Score : 83 points
Date : 2026-01-26 19:23 UTC (3 hours ago)
(HTM) web link (visualrambling.space)
(TXT) w3m dump (visualrambling.space)
| ChrisArchitect wrote:
| Related:
|
| _Dithering - Part 1_
|
| https://news.ycombinator.com/item?id=45750954
| VinLucero wrote:
| Thank you
| csressel wrote:
| first post was great, this should be interesting!
| subprotocol wrote:
| In chrome it says "Loading assets, please wait..." and hangs. but
| it works for me in firefox
| jonahx wrote:
| This is really nice work, as are the other posts.
|
| If the author stops by, I'd be interested to hear about the tech
| used.
| ggambetta wrote:
| I used ordered dithering in my ZX Spectrum raytracer
| (https://gabrielgambetta.com/zx-raytracer.html#fourth-
| iterati...). In this case it's applied to a color image, but
| since every 8x8-pixel block can only have one of two colors (one
| of these fun limitations of the Spectrum), it's effectively
| monochrome dithering.
| a_shovel wrote:
| Bayer dithering in particular is part of the signature look of
| Flipnote Studio animations, which you may recognize from
| animators like kekeflipnote (e.g. https://youtu.be/Ut-fJCc0zS4)
| spicyjpeg wrote:
| Bayer dithering was also employed heavily on the original
| PlayStation. The PS1's GPU was capable of Gouraud shading with
| 24-bit color precision, but the limited capacity (1 MB) and
| bandwidth of VRAM made it preferable to use 16-bit framebuffers
| and textures. In an attempt to make the resulting color bands
| less noticeable, Sony thus added the ability to dither pixels
| written to the framebuffer on-the-fly using a 4x4 Bayer matrix
| hardcoded in the GPU [1]. On a period-accurate CRT TV using a
| cheap composite video cable, the picture would get blurred
| enough to hide away the dithering artifacts; obviously an
| emulator or a modern LCD TV will quickly reveal them, resulting
| in a distinct grainy look that is often replicated in modern
| "PS1-style" indie games.
|
| Interestingly enough, despite the GPU being completely
| incapable of "true" 24-bit rendering, Sony decided to ship the
| PS1 with a 24-bit video DAC and the ability to display 24-bit
| framebuffers regardless. This ended up being used mainly for
| title screens and video playback, as the PS1's hardware MJPEG
| decoder retained support for 24-bit output.
|
| [1]: https://psx-
| spx.consoledev.net/graphicsprocessingunitgpu/#24...
| PMunch wrote:
| Just did a bit of a deep dive into dithering myself, for my
| project of creating an epaper laptop.
| https://peterme.net/building-an-epaper-laptop-dithering.html it
| compares both error diffusion algorithms as well as Bayer, blue
| noise, and some more novel approaches. Just in case anyone wants
| to read a lot more about dithering!
| mblode wrote:
| I built a blue noise generator and dithering library in Rust and
| TypeScript. It generates blue noise textures and applies blue
| noise dithering to images. There's a small web demo to try it out
| [1]. The code is open source [2] [3]
|
| [1] https://blue-noise.blode.co [2]
| https://github.com/mblode/blue-noise-rust [3]
| https://github.com/mblode/blue-noise-typescript
___________________________________________________________________
(page generated 2026-01-26 23:00 UTC)