Quantizing an image to 2 bits per color channel (64 colors). Dithering with 8x8 bayer (top) and FAST spatiotemporal blue noise (bottom).
Randomly offsetting bayer each frame, it doesn't converge.
That is weird.
The bayer matrix averages to 0.5 so is unbiased in that regard.
I think it must be due to Bayer having 1/64th values, while the blue noise has 1/256th values.
hmm...
=> More informations about this toot | More toots from demofox@mastodon.gamedev.place
Bayer totally bites it at 1 bit per pixel (8 colors), with a 2x4 matrix. FAST STBN works just fine.
(I'm working on a dithering & stippling blog post)
=> More informations about this toot | More toots from demofox@mastodon.gamedev.place
At 3 bits per color it doesn't converge either though. Still ugly banding in the sky. That's 512 values, so is 1/512. Something else must be going on.
=> More informations about this toot | More toots from demofox@mastodon.gamedev.place
oops, 3 bits per color channel is 512 colors, but not 512 values in the bayer matrix. Each channel is treated independently, so this is just a 4x2 bayer matrix = 8 values (shades).
=> More informations about this toot | More toots from demofox@mastodon.gamedev.place
Yeah mystery solved... it's the quantized values used in Bayer that are causing the banding.
Here the image is dithered and quantized to 2 bits per color channel. Top is white noise limited to 4 discrete values. Bottom is white noise with full range of floating point values.
=> More informations about this toot | More toots from demofox@mastodon.gamedev.place
@demofox
Looks interesting - I don't fully understand it but looking forward to your post!
=> More informations about this toot | More toots from rzeta0@mastodon.social This content has been proxied by September (ba2dc).Proxy Information
text/gemini