4 ms·
They mention the issue of dithering changing "everywhere" when e.g. a mouse cursor is moving, which is obviously distracting. I wonder if you couldn't make an e
by semi-extrinsic 4y ago
They mention the issue of dithering changing "everywhere" when e.g. a mouse cursor is moving, which is obviously distracting. I wonder if you couldn't make an error diffusion dithering technique where the amount of error to diffuse is mollified by the signed distance from the moving pixels?
* Seed signed distance function with -1 in all pixels that changed, +1 in static pixels
* Use a fast marching method to re-initialize a narrow-band signed distance function
* Compute gradient of signed distance to get a vector field
* Multiply error to be diffused by a sigmoid function of signed distance
* Diffuse error in the direction of the vector field
Also, I've found in my own toying around that introducing a bit of randomness in the error diffusion matrix of traditional dithering methods gives much more pleasing results.
- frabert 4y agoThis might interest you: https://forums.tigsource.com/index.php?topic=40832.msg1363742#msg1363742 https://forums.tigsource.com/index.php?topic=40832.msg136374... It's about how to perform realtime dithering of a 3D scene such that the amount of annoyance you describe is minimized
- semi-extrinsic 4y agoThanks for the link, that was a nice writeup indeed! It's a different technique though, using a dither pattern gives a very different look from error diffusion (which IMO looks more natural). But in the example you posted, the pattern is a nice stylistic effect. I might actually have to try and code up what I outlined above to see if it works.
- JKCalhoun 4y agoBlue noise in error diffusion dithering was a thing some decades ago. Perhaps there are better algorithms?: https://en.wikipedia.org/wiki/Dither#Digital_photography_and_image_processing https://en.wikipedia.org/wiki/Dither#Digital_photography_and... https://en.wikipedia.org/wiki/Colors_of_noise#Blue_noise https://en.wikipedia.org/wiki/Colors_of_noise#Blue_noise