Généralité sur la 2D

 

Ecran physique(surface primaire/primary buffer/front buffer) ou Ecran logique (back buffer) ou encore double tampon: L'écran physique est l'écran sur lequel nous voyons le rendu d'une image terminé. Pour éviter les effets de scintillement à l'écran causés par un raffraichissement trop rapide de celui-ci alors que le traitement de rendu de l'image n'est pas encore terminé, on passe par un pseudo écran (écran logique) qui n'est pas visible par l'utilisteur (ben non, puisque c'est l'écran physique qui est affiché) et qui est compatible avec l'écran physique. Toutes les opérations graphiques se feront alors dans celui-ci et peuvent prendre le temps qu'elles veulent (enfin pas trop quand même car l'animation risquerait de ne pas être fluide). Ce n'est que lorsque le rendu sera terminé que cet écran logique pourra devenir physique (swapping) ou que le contenu de l'écran logique sera basculé dans l'écran physique (via le blitter, c'est le blitting).

offscreen:Si vous avez de la mémoire, il s'agit de zone/tampon mémoire ayant en principe une structure compatible avec le tampon mémoire utilisé pour l'affichage à l'écran ou surface primaire au niveau structure (nb. couleurs, ...) mais pas forcément de même taille. Dans ces tampons vous pourrez charger des images qui serviront par la suite à votre animation. Cependant, ces tampons ne seront jamais directement affichées à l'écran (d'où le off).

VBI, VBL ou VBLANK: Le faisceau d'électrons balaye l'écran de gauche à droite et de haut en bas en commençant en haut à gauche. Lorsque le faisceau est arrivé en bas à droite, il doit revenir à son origine très rapidement pour recommencer à l'affichage de l'image suivante. Durant ce retour, il faut désactiver le faisceau pour éviter qu'une ligne s'affiche en diagonale. Cette période de désactivation s'appelle intervalle de suppression de trame (ou VBI pour vertical blanking interval ou encore Vertical Blank). Ce début de période se traduit par une interruption au niveau de l'ordinateur qui permettra de gérer l'affichage et/ou d'avoir des traitements particuliers comme la lecture de la position de la souris pour affichage du curseur par exemple.

DLI ou HBL: Le faisceau d'électrons balaye l'écran de gauche à droite et de haut en bas en commençant en haut à gauche. Lorsque le faisceau d'électron arrive à droite, il doit alors retourner à gauche et à la ligne suivante. Durant cette période, le faisceau doit être désactivé afin de ne pas être visible. Cette période de désactivation s'appelle Display LIst ou Horizontal BLank et se traduit aussi par une interruption sur l'ordinateur permettant d'effectuer d'éventuel mais très très court opérations.

blitting : Action permettant de transférer le contenu des tampons mémoires. Cette opération pouvant être gourmande en temps, elle est dévolue à un blitter.

flipping ou swapping : Méthode permettant de changer le pointeur utilisé pour afficher une image à l'écran depuis une autre zone mémoire que celle utilisée auparavant. cette opération a l'avantage d'être très rapide par rapport au blitting. Elle était donc souvent utilisée sur les vieux ordinateurs qui étaient bien trop lent pour effectuer un blitting. Cette opération ne pouvant se faire que durant le retour du faisceau écran à son origine (VBI), ceci pour eviter des effets désagréables de scintillement.

clipping : Permet de délimiter la zone où les opérations graphiques pourront être faites. Pas de débordement possible. Le clipping est systématiquement utilisé dans les systèmes fenétrés pour éviter qu'un dessin ou encore un texte ne sorte d'une fenêtre !

Anti-repliement, anti-alaising ou anti-crénelage : Les lignes qui ne sont ni horizontales ni verticales sont crénelées. Ce phénomène est appelé aliasing. L'anti-aliasing permet de supprimer cet effet escalier. En fait, si vous traciez une droite, vous auriez des pixels plus ou moins recouverts par cette droite. Le principe est de donner à chacun des points à proximité de la droite une couleur calculée à partir du point de la droite et du point. Couleur qui sera plus ou moins opaque selon le taux de recouvrement de la droite sur ces pixels, ceci permettant d'attenuer l'effet de zig-zag ou d'escalier.

Voici un exemple zoomé

Sans lissage (ou aliasing): Image non trouvée !

Avec lissage (ou anti aliasing): Image non trouvée !

 

RVB ou RGB Il s'agit d'indiquer le niveau des 3 couleurs/composantes primaires (Rouge (Red), Vert (Green), Bleu (Blue) permettant ainsi d'obtenir une couleur. Ces niveaux pouvant varier suivant les possibilités des cartes graphiques. Les variations maximums étant actuellement de 0 à 255 par composants RVB soit une palette de 256*256*256 = 16777216 couleurs...

Image non trouvée !En electronique, les couleurs primaires sont le rouger, le vert et le bleu. Alors que pour la peinture, ce sera le rouge, jaune et bleu !

Vous pourrez aussi trouver des encodages avec A pour Alpha Blending: la valeur indiquant la valeur de diffusion du matériau (pour faire simple, le niveau de transparence).

(voir aussi RVBA)

Image non trouvée !

Image non trouvée !Il existe différentes méthodes d'encodage:

ARGBFFFF Codage alpha, rouge, vert, bleu sur 16 bits

ARGB8888 (codage sur 8 bits des composantes de la couleur), ARGB4444 (sur 4 bits), RGB565 (5bits pour le rouge et le bleu, 6 bits pour le vert, mais aussi BGRA8888, BGRA4444, tout ça sans parler de YUV...

On trouvera aussi sous JAVA/Android des formats similaires:

#RGB
#RRGGBB
#ARGB
#AARRGGBB

Pour lire/modifier les composantes de ces couleurs primaires, il suffit de convertir la couleur en hexedécimal. Suivant le codage utilisé, vous pourrez en déduire facilement les valeurs de ces composantes:

Par exemple 4293151249 est parfaitement illisible pour le commum des mortels. Ce nombre converti en héxa, vous obtenez FFE44A11 bien plus lisible pour les initiés, puisque:

FF pour alpha soit 255 en décimal, l'objet sera complétement opaque

E4 pour le rouge soit 228 en décimal

4A pour le vert soit 74 en décimal

11 pour le bleu soit 17 en décimal

On peut donc en déduire que la couleur sera composée essentiellement de rouge puis de vert et quelques traces de bleu, elle tendra donc vers un orange...

Un site rigolot permettant de voir les couleurs correspondantes à leur encodage: http://fr.spycolor.com/. Par exemple pour la couleur ci-dessus: http://fr.spycolor.com/e44a11

 

Tracer de droite rapide: Bresenham

A venir...