Closed MMeent closed 2 years ago
See the tech talk linked on the website - dithering on its own isn't too tricky to implement but as of yet it's unknown how well it will work alongside the remix algorithm when stud counts are limited. I'm marking this as blocked pending further research around how well propagating quantization error would work when running the limited stud count remix algorithm. I'll look into this if/when I have time One could just force the assumption that stud counts are unlimited when dithering is used, but that's not the best user experience and the UI isn't as clean, so it's preferable to go for the more complete solution from the get go, if it's found to be feasible.
Implemented in v2022.1.7
This implementation reworks the UI to collect some options under the 'Quantization' section, so settings that affect the way colors are assigned to pixels are all in one place.
4 different linear error dithering algorithms are included, based on existing literature. Using any of these will force the assumption that infinite pixels of each available color are present, because they won't work otherwise.
In addition to the default existing 2 phase algorithm, another greedy heap based algorithm has been added. This new algorithm is capable of using its own form of error dithering, while still being able to deal with limited pixel counts. The downside is that the results can be weird in some cases, and the runtime is slower than the 2 phase algorithm. The 2 phase is still the default for this reason, so dithering won't be applied unless a user specifically chooses what flavor of dithering they want to apply.
For larger images, images with gradients or other situations where you have limited amounts of colors available, dithering support would be appreciated.
This would probably best be selected in the 3rd step, as an alternative to (or extension of) the color alignment option.