★ CODING ★ AMSLIVE ★ AMSLIVE n°01 - LE BALAYAGE VIDEO ★ |
AMSLIVE n°01 - Balayage Video | Coding Amslive |
Cette série d'articles devrait vous permettre de réaliser de belles animations, qu'elles soient soft ou hard (ne pas confondre animations hard avec scènes de film X, cela n'a rien à voir). Vous vous êtes lavé les mains ? Alors c'est parti. Générale alitée. Les éléments de l'image (PICture ELement : PIXEL) d'un moniteur ne sont pas affichés simultanément et continûment (?). Le canon à électrons balaie (scan) l'écran par lignes horizontales, de haut en bas, chacune étant parcourue de gauche à droite. C'est le phénomène de persistance rétinienne (environ 1/15eme de seconde) qui permet l'illusion de stabilité de l'image. Overscan. Quand le canon a parcouru sa ligne, il revient à gauche, et quand il a fini toutes ses lignes, il revient en haut. Pendant ce temps, il ne doit rien afficher : c'est l'overscan (le vrai, ce terme désignant abusivement un écran sans border sur CPC). C'est le moniteur qui gère ça, le "retour" vertical (VBL : Vertical Blanking) étant produit toutes les 20 ms, et l'horizontal (HBL) toutes les 64 us. Mais le plus fort, c'est que ce brave moniteur va essayer de se caler sur les tops de synchro qu'il reçoit, si leurs périodes ne sont pas trop éloignées de celles de références (j'ai parle de 20 ms et 64 us, mais en fait elles dépendent des réglages des boutons V-Hold et H-Hold). Il peut siffler un peu, mais ce n'est pas parce qu'il bout. Top synchro. Les signaux de synchronisation, générés par le CRTC (Cathode Ray Tube Controller), nous permettront de savoir où en est le canon, puisque ce dernier est guidé par ces signaux ! Entrelaçons-nous. La France a choisi un système a 625 lignes, 25 Hz (pour concorder avec la fréquence du reseau électrique). Mais il se trouve que 25 images par seconde ne suffisent pas pour éviter un papillotement. Alors on a décidé d'afficher la moitié des lignes mais deux fois plus souvent. C'est le principe de l'entrelacé : on affiche les lignes paires, puis les lignes impaires. La demi ligne (625 / 2 = 312.5) permet au canon de se placer alternativement à gauche et au milieu à chaque début de trame (voir schémas 1a et 1b). Sur CPC, on se retrouve avec : 312 lignes, 50 Hz (environ), mais ce n'est pas de l'entrelacé dans le sens où les lignes horizontales sont toujours affichées au même endroit. Le CRTC peut fonctionner en mode entrelacé, mais cette fonction est buggée sur la plupart d'entre eux (CRTCs de type 0, 1,3, 4). De plus, s'il gère bien la demi ligne, c'est le moniteur qui n'assure pas puisqu'il décale d'une ligne (verticalement) plutôt que d'une moitié (voir schéma 2), sauf en réglant très très finement V-Hold. C'est d'ailleurs ce réglage (instable) qui permet de vraiment doubler la résolution en utilisant l'entrelacé du CRTC, mais ce n'est pas pratique du tout. Synchro au top. Médames, messieurs, l'assimilation du paragraphe précédant n'est pas indispensable à la compréhension de la suite de l'article. Par contre, il faut avoir bien en tête qu'à chaque donnée de la mémoire écran correspond une donnée affichée à un instant précis. Si vous changez des données de la mémoire écran (animation soft), il faut se synchroniser avec le canon. Imaginez que vous déplaciez un sprite en l'effaçant et le réaffichant à coté : si l'effacement intervient avant le passage du canon à l'endroit de ('animation, et l'affichage après, jamais vous ne verrez votre sprite. [à suivre...]
|