dmliao / strike

1-bit paint app
https://amorphous.itch.io/strike
MIT License
88 stars 5 forks source link

Suggestion: use ordered dithering instead of separate dither patterns #1

Open fluffy-critter opened 4 years ago

fluffy-critter commented 4 years ago

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

image
dmliao commented 4 years ago

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.

fluffy-critter commented 4 years ago

Ah, that makes sense!

AVHon commented 4 years ago

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.

gingerbeardman commented 4 years ago

@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?

gingerbeardman commented 4 months ago

After all this time some other ideas