strike
strike copied to clipboard
Suggestion: use ordered dithering instead of separate dither patterns
The current dither patterns cause some bad interfacing between the boundaries of multiple "colors", resulting in visible fringing that looks like dark or bright spots due to, for example, a pixel disappearing from a brighter pattern when it appeared in a darker pattern.
If the patterns were generated as ordered/Bayer dithering patterns, this effect would be eliminated.
https://en.wikipedia.org/wiki/Ordered_dithering for more information

The dither patterns I currently have are (some of) the same dither patterns used in HyperCard, which was my initial inspiration. I probably wouldn't want to change it outright, since I specifically chose the patterns that I personally use most often - but I am thinking of possibly supporting multiple dither 'sets', and allowing the user to switch between them.
Ah, that makes sense!
I like the current dither patterns; I think they are more visually distinct than ordered dithering.
I wonder how difficult it would be to detect and adaptively fill in the boundaries of different patterns. This might cause patterns to be drawn slightly outside of their established boundaries, but it might eliminate the visual gaps on the borders.
@AVHon i like that idea.
Strike could move close fitting borders to eliminate gaps between them?
And perform some sort of algorithm when filling edges to avoid pixel clash?
After all this time some other ideas
- adjust the pattern origin so they stack more neatly (this should be the case if they're taken from HyperCard/MacPaint) but maybe something changed along the way
- draw the patterns with black as transparent (maybe a mode, when colours are overdrawn)