So I got some dithering working in my low-res aesthetic thing I'm prototyping:
Looks kind of nice (might be a little hard to see in first image though). Needs a bit of tweaking. Pretty standard pattern though. ...
A lil better. :+
... Just a learning experience because there are pretty much widely available dithering shaders any ways in the public domain I could just use and they really don't differ much, all depends on the dithering pattern you make/use in the end. ...
Depends on a lot more things than just the patterns, whereas a pattern will
give the overall look, indeed. But if you want to produce fine dithering
out of continuous tone images or images based on color palettes, there is
much more to understand. To learn many of the tricks, you may also want to
understand dithering from the perspective of trying to actually reconstruct a
continuous tone image as close as possible. This is a lil different than
just applying some patterns to an image, since applying a pattern to an
images will changes it in many ways. For example, you may have recognized that
the image suffers a little in contrast when using dithering.
Another aspect to consider is to take human perception into account. For
example, one may skip those patterns producing horizontal/vertical-patterns
(-,|,+) and favor those with a more diagonal (/,\,x) behavior etc.. Another
thing is color perception. You may want to dither differently depending on the
given color channel since human perception doesn't perceive all colors equally
bright and as such won't be able to differentiate the same amount of shades
for each color. So for example you may use less continuous tones for blue and/
or may also dither them with a smaller pattern.
Well, the pattern size (order) is also very important not only because of the
many shades a pattern can produce, but because of the resolution drop it
produces! If you look closely you will see that the resolution of your image
drops if you use higher order dithering patterns. There is an anti-reciprocal
relation to it; more shades = less resolution. Try it! Use a 2x2 Bayer pattern
and a 4x4 or 8x8 one and compare. You are basically trading resolution for
quantization levels (shades). In a given way, you are limiting the frequency
bandwidth of the image and use gained capacity to get more levels to quantize
the amplitude with. The patterns behave like a low-pass filter applied to the
image. That's where the resolution drop comes from.
Another hint I want to give you is to build the patterns yourself (from
scratch) and not use the (already combined) Bayer patterns. If you build them
from scratch you will easily be able to build arbitrary (artistic) patterns.
It's easy, you basically build a pattern table with each entry representing a
given (supposed to be) shade. Next to some single dots in said patterns you may
put/draw some funny stuff in there or order the dots geometrically. Done so,
you then simply map a shade index into the table getting the pattern and use
it to dither the current pixel.
Another, more old-school, variant is to not dither the image pixel-by-pixel
but to combine a set of pixels (preferable rectangular) and use a pattern to
represent said pixels (their average shade for example). This technique is
called patterning. It allows for much more cooler stuff (in the end) esp.
considering coloring. However, in this case, you will immediately see how the
resolution drops to gain the shades (space to play with). For example, if you
combine 2x2 pixels and replace them with a 2x2 pattern/shade, then your
(spatial) image resolution will drop by 2. This is similar to the drop in
resolution as I've explained above regarding the 'standard' dithering
technique (on computer screens known as dispersed-dot ordered dithering).
... Re-quoting for context in the past with my earlier attempt. Your advice was useful, thanks:
Cheers!