How would you 30%-dither a 8x9 pixels tileable rectangle?
So far I have something like this:
⬛⬜⬜⬛⬜⬜⬛⬜⬜
⬜⬛⬜⬜⬛⬜⬜⬛⬜
⬜⬜⬛⬜⬜⬛⬜⬜⬛
⬛⬜⬜⬛⬜⬜⬛⬜⬜
⬜⬛⬜⬜⬛⬜⬜⬛⬜
⬛⬜⬜⬛⬜⬜⬛⬜⬜
⬜⬜⬛⬜⬜⬛⬜⬜⬛
⬜⬛⬜⬜⬛⬜⬜⬛⬜
Any other ideas?
@deshipu isn't the very point of dithering to avoid patterns exactly like the one you posted?
@temporal I'm open to suggestions.
@deshipu if by "tileable" you mean you're going to copy-paste the same pattern across a large surface, I think the problem as stated has no good solutions. No matter what you put on the rectangle, tiling will create some kind of pattern.
I think you need to be able to dither "globally" - replacing random 30% of the pixels, but allowing individual rectangles to each have slightly more or less than 30% pixels flipped.
The above is applicable only if I guessed the problem you're solving correctly.
@deshipu Here’s a crude generator that comes up with more or less interesting ways: http://sketch.paperjs.org/#V/0.12.15/S/5VVdb5swFP0rV0gtJpAPpE3akrG97W3StD5SHhwwxfmwI+I1sDb/fdc2JIFQrVUfZ0WyfXzu8bm+V+TJEXTLnLlzt2YqLZzASWWm94+0hAPPVAERfF7cC70vGH8oFAKfGqBkO0Y18BGBBqJ7xUqEBDvAL7MhennH/zBi+SOjGzTRI6vqeShhgyf7rZSq4OIBZVyZ5+75aCf3XHEp8OSRs8MkZQLhi9CUbhj5QVUx2XJBDGcpf4tsPzG3Tpu7Lw+sgWnjY2pteSajjCqKV8X3AnDEYQAz8+svkuB/YyS24voZpfheYhPhOxEPoq/wZON1N1QImmLkGylLYh5/ZICSikxuiSl7y667bFuQYTrPgejixHUSVwlEUQSh197c6vGu3odhqZadabPxODxlmsQ86XO0xRjPW1qPo22dd3oYk6T2s9pvGuzGzklMKj+rfPMm3o2ZbCKzrsLtLaZa2xTh+flCcRy+XtN7UXTcU/XfqVoNWR2WxATeJHplddjov1Q7jXIqUtNJMFu8r4IQ9gRyWQJp+3G2wOkLXH4JEfH9K0+dyJWNXJ0jrQWEXgjVo/0mMvWTV2xDeACrwOazOuXAW+PfwF1uaLp2YQ7uoeCKud7iWvjYhS62zRKnI/6PLEtG1zvJhdo78zg5/gU=
@isziaui That is amazing, thank you!
@deshipu I wonder if going the other direction from 33% (e.g. 50%) wouldn’t work better due to nonlinearity of perception. Assuming the goal is to get four perceptually evenly spaced levels of gray. But choose whatever looks good on your display.
@isziaui Well, I need 4 levels, 0% and 100%, and then I have 25% and 75% (the 25% but negative). 50% would leave me with one level short.
@deshipu I was thinking something like 0%, 50%, 87.5%, 100% (percentages of black). Assuming gamma 2.2, that would give you “brightnesses” of [1, .5, .125, 0].^(1/2.2) = [1, .73, .39, 0]. (No idea if a power law is a good model here. The power law comes from CRT response but it happens to more or less match perception.)
@isziaui I can't upload photos right now, due to muskxodus, but looking at the LCD screen I'm using, if I changed anything, it would be the other way around: 0%, 25%, 50%, 100%, maybe. The black is pretty dark.
@deshipu You’re right, this looks best. It’s probably the shadow of the pixels that causes a kind of “dot gain”, reversing the nonlinearity, that I didn’t take into account.
In the end I went with a slightly flatter 8x10 pixels and a 25%-dither.