Introduction:
The Atari ST was normally able to display 16 colours simultaneously and
each one could take its red, green & blue (RGB) values out of 8
possibilities. So we had to choose 16 colours out of 83=512
possible tints (for the STe it was 163=4096 tints).
For example this square has colour R=6, G=3, B=5: | 635 |
Basic idea:
To explain i'll tell the story of a pixel (let's call him Fred) and what happens
to him during the 50 refreshes occuring in a second. During the first refresh,
Fred is very angry, so he is full red with RGB=700. During the second refresh,
Fred has quieted and now is RGB=766. But the third refresh he is angry anew
RGB=700, then he quiets once again... etc...
700 | -> | 766 | -> | 700 | -> | 766 | ... |
700 | + | 766 | = | 733 |
Thus we can have more than 512 tints on a mere Atari ST. For example if you set a pixel to 666 during odd refreshes and to 777 during even ones, your eye will see a "virtual" tint inbetween those ones. Thus we can now choose between 153=3375 tints on a ST and 313=29791 on a STe.
But this method has a major disadvantage, which is the flickering. Suppose you altenatively give values 666 and 777 to the whole screen. In theory your eye shall perceive the middle value, isn't it? True, but your brain will also perceive a major headache, due to the luminosity difference... The overall luminosity during first refresh is 6+6+6=18 while it is 7+7+7=21 during the next refresh, and having this difference on a big surface is too much to fool your eye... Use at your own risk.
Enhancements:
First of all, the smaller the luminosity difference, the better for your eyes.
I mean you shall prefer switching between 431 & 432 (difference=1) than
switching between 000 & 777 (diff=21), or even between 333 & 444
(diff=3).
The other problem concerns large surface, where the luminosity will vary a lot and cause the flicker. To avoid it, we use a method called "ordered dithering"... Our goal is to obtain the tint between 6 and 7 (6.5 on each compound that is). For this we make groups of 4 pixels, and use the following patterns on the whole surface:
pattern for odd pictures: | 67 76 |
& pattern for even pictures: | 76 67 |
The End:
Ok, it's now finished for this small explanation. There exist more tricks
dealing with spatial and temporal averaging, but i'm too tired just now.
Now time to look at some of the marvels artiSTs created, for example
GoldFinger and Lancelot have made pictures using such tricks, which explains
why you have two images.