Boing Ball

 

C'est en 1985 que cette démo est apparue pour le ST:

Le secret à l'époque pour faire cela de manière rapide était en fait assez simple et malin:

A l'époque, les machines ne pouvaient pas gérer un nombre important de couleurs affichables simultanément à l'écran. On se contentait de 16 ou 32 couleurs affichables au mieux, mais sur une palette de couleurs quand même assez large (512 à 4096 couleurs disponibles).

La définition des 16 ou 32 couleurs passait par des registres de couleur qui contenaientt chacun les composantes RVB de la couleur à afficher. En mémoire, les valeurs correspondant aux pixels à afficher à l'écran indiquaient en fait le registre de couleur à utiliser. Gros avantage, la taille mémoire de l'écran était bien inférieure à celles d'aujourd'hui. Les microprocesseurs de cette époque avaient donc moins de travail à faire.

Dans le cas de la Boing Ball, il s'agissait d'avoir l'image d'une balle en 3 dimensions composée de faces blanches et rouges. Cette balle pivotant sur elle même tout en rebondissant.

Pour faire la rotation de la balle, les carrés blancs et rouges étaient en fait composés chacun de n lignes verticales. chacunes de ces lignes étant associées à un seul registre de couleur. Ce qui était alors équivalent à faire ceci:

  Carré blanc composé de 8 lignes Carré rouge de 8 autres lignes
Registre 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Dans l'exemple ci-dessus, les registres de 1 à 8 auront la couleur blanche. Les registres de 9 à 16 auront la couleur rouge. Il faut recopier cette séquence dans tous les couples de carrés blancs et rouges. Il suffisait ensuite de déplacer par une sorte de rotation vers la droite la couleur de chacuns des registres vers leurs registres immédiatement suivants (registre n+1 = couleur registre n), la couleur du registre 16 passant dans le registre 1, et vous obtenez une impression de rotation de l'image sans aucun calcul 3D. Pas de calcul particulier à faire, développement hyper simple et c'est ultra rapide ! Pour donner l'impression d'une balle qui rebondi, il restera à gérer un sprite contenant cette image que l'on déplace en x et y.

La boing ball du ST:

Il s'agit d'un .PRG

Image non trouvée !

J'ai repris ce principe de la boing ball sous OpenGL sous Windows ainsi qu'en screen-saver.