AccueilđŸ‡«đŸ‡·Chercher

Alpha blending

En infographie, la simulation de transparence ou alpha blending est une technique graphique consistant à ajouter de la transparence à des images en deux dimensions ou à des objets tridimensionnels. Les deux cas sont semblables étant donné qu'un objet 3D donné est souvent modélisé par des surfaces avec une image servant de texture.

Exemple d'image variant en couleur et en transparence

La technique de simulation de transparence consiste Ă  ajouter Ă  chaque pixel une valeur, par exemple un octet (nombre de 0 Ă  255), dĂ©finissant le caractĂšre translucide de la surface et appelĂ©e canal alpha. Un objet est totalement opaque si la valeur alpha est au maximum (255 dans le cas d'un octet). Au contraire, il est invisible si cette valeur est Ă  0. Cette technique nĂ©cessite une forte puissance de calcul ou des fonctions spĂ©cifiques mises en Ɠuvre par les processeurs des cartes graphiques modernes. Les jeux l'utilisent intensivement depuis quelques annĂ©es.

Le concept de canal alpha a été introduit par A. R. Smith à la fin des années 1970 pour stocker des informations de masquage ; il a été décrit en détail dans un article de 1984 écrit par Thomas Porter et Tom Duff[1].

Utilisations

Objets tridimensionnels et alpha blending

Dans le cas des surfaces monochromes, elles peuvent ĂȘtre dĂ©finies par :

  • les coordonnĂ©es 3D des 3 points (on utilise gĂ©nĂ©ralement des triangles pour reprĂ©senter tout objet)
  • plus 3 octets pour exprimer la couleur RGB (Rouge Vert Bleu : couleur "vraie" 24 bits)
  • un octet d'alpha blending.

Alpha blending en infographie

En infographie, la simulation de transparence consiste à pouvoir combiner une image avec un arriÚre-plan, de façon à représenter une transparence partielle. Il est souvent indiqué de restituer des images en plusieurs passes, en combinant ensuite les multiples images 2D résultantes en une image finale, unique, selon un procédé dit de composition. La composition est par exemple utilisée de façon intensive lors de l'intégration d'éléments d'images dans une séquence en direct.

Pour combiner correctement ces éléments d'image, il faut associer et mémoriser un masque pour chaque élément. Ce masque contient les informations de recouvrement liées aux zones de l'image définies et aux zones vides.

Mise en Ɠuvre

Un pixel d'image 2D est traditionnellement représenté par 3 valeurs, une pour chaque composante RGB. Une valeur supplémentaire est stockée dans le canal alpha, par exemple selon une valeur entre 0 et 255 (entier 8 bits), entre 0.0 et 1.0 (nombre flottant). Dans le cas [0, 1], 0 correspond au transparent - aucune couverture, c'est-à-dire qu'aucune partie ne recouvre le pixel considéré - , et 1 à l'opaque - un objet recouvrant complÚtement le pixel.

Lorsqu'on utilise le canal alpha, on multiplie habituellement la valeur des composantes de couleur par la valeur alpha de chaque point, pour faire l'économie de multiplications lors des opérations de combinaison. Cette opération est connue sous le nom d''alpha prémultiplié. Ainsi, en supposant que la couleur est exprimée en quadruplets RGBA, on représente normalement un pixel vert vif avec une opacité de 50 % par les valeurs (0 ; 1 ; 0 ; 0,5) qui devient (0 ; 0,5 ; 0 ; 0,5). Dans une représentation RGB, le vert est simplement codé par (0 ; 1 ; 0). Dans une représentation alpha prémultiplié, chaque valeur RGB est (pré) multipliée par la composante alpha, ce qui donne dans l'exemple de alpha=0,5, (0 ; 0,5 ; 0). Le pré-calcul est préférable à la simulation de transparence classique, la simulation de transparence avec pré-calcul étant associative, et donnant de meilleurs résultats par interpolation linéaire.

Grùce à l'introduction du canal alpha, il est possible d'exprimer les opérations de combinaison d'images en utilisant une algÚbre de composition. Par exemple, étant donné deux éléments graphiques A (carré bleu) et B (disque orange), l'opération de combinaison la plus courante consiste à combiner les images pour que A apparaisse en avant-plan, et B en arriÚre-plan. On peut exprimer cette opération comme A sur B.

Par exemple, Ă©tant donnĂ© deux Ă©lĂ©ments graphiques A et B, l'opĂ©ration de composition la plus classique consiste Ă  combiner les images de sorte que A apparaisse en avant-plan, et B en arriĂšre-plan, ce qui peut ĂȘtre exprimĂ© par 'A sur B' (A over B). En plus de l'opĂ©ration 'sur', Porter et Duff ont dĂ©fini les opĂ©rateurs 'dans' (in), 'tenu par' (held out by, habituellement abrĂ©gĂ© en 'out'), 'au-dessus' (atop) et 'ou exclusif' (xor) (ainsi que les opĂ©rateurs inverses 'rover', 'rin', 'rout' et 'ratop' - la lettre 'r' signifiant 'inverse') Ă  partir d'une considĂ©ration de choix de mĂ©langes des couleurs de deux pixels lorsqu’ils se recouvrent, conceptuellement, orthogonalement.

Avec les valeurs RGB normales

L'opération A sur B est, en fait, l'opération de peinture normale (voir algorithme du peintre). L'opération 'dans' est l'équivalent du clipping en alpha blending.

Notation utilisée : est la couleur de l'élément A, est la couleur de l'élément B, et et sont les valeurs alpha.

L'opĂ©ration 'sur' peut ĂȘtre rĂ©alisĂ©e en appliquant la formule suivante Ă  chaque pixel. La valeur de couleur rĂ©sultante est :

Et la valeur alpha résultante est :

La valeur de couleur résultante est donc :

Avec les valeurs RGB prémultipliées par la valeur alpha

Dans ce cas, on utilise des valeurs de couleurs et définies par : et

Le calcul de l'opération 'sur' devient plus simple. La valeur de couleur résultante est :

La valeur alpha résultante est toujours :

On constate que la formule est alors identique pour une composante de couleur ou pour le canal alpha.

Autres méthodes de transparence

Bien qu'utilisé pour des buts semblables, les couleurs transparentes et les masques ne permettent pas de faire un mélange progressif des images superposées. Il n'y a alors que deux possibilités : soit le pixel est remplacé, soit le fond est laissé tel quel.

Un effet similaire est obtenu en utilisant un canal alpha de 1 bit, comme on peut le trouver dans le mode RGB 16 bits des images TGA (Truevision TGA) et les modes graphiques des périphériques apparentés (TARGA et AT-Vista/NU-Vista). Ce mode utilise 5 bits pour chaque couleur primaire (15-bit RGB) et le bit restant comme "canal alpha".

SystĂšmes fenĂȘtrĂ©s et alpha blending

Microsoft Windows a intĂ©grĂ© l'Alpha Blending pour le dessin des fenĂȘtres (GDI) depuis Windows XP, mais les logiciels intĂ©grĂ©s Ă  Windows XP ne l'emploient pas, contrairement Ă  ceux de Windows Vista.

L'alpha blending est géré nativement par les systÚmes d'exploitation suivants :

Références

  1. Porter, Thomas; Tom Duff (1984). "Compositing Digital Images". Computer Graphics 18 (3): 253–259. doi:10.1145/800031.808606.

Voir aussi

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.