Alpha blending

Alpha blending
Exemple d'image variant en couleur et en transparence

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.

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].

Sommaire

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 et B, 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.

Alpha compositing.svg

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éfinis 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 lorqu'il se recouvrent, conceptuellement, orthogonalement.

Formule

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 : Ca est la couleur de l'élément A, Cb est la couleur de l'élément B, et αa et αb 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 : C_o = \frac{C_a \alpha_a + C_b \alpha_b \left(1 - \alpha_a\right)}{\alpha_a + \alpha_b \left(1 - \alpha_a\right)}

Et la valeur alpha résultante est : \alpha_o = \alpha_a + \alpha_b \left(1 - \alpha_a\right)

La valeur de couleur résultante est donc : C_o = \frac{C_a \alpha_a + C_b \alpha_b \left(1 - \alpha_a\right)}{\alpha_o}

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

Dans ce cas, on utilise des valeurs de couleurs ca et cb définies par : ca = Caαa et cb = Cbαb

Le calcul de l'opération 'sur' devient plus simple. La valeur de couleur résultante est : c_o = c_a + c_b \left(1 - \alpha_a\right)

La valeur alpha résultante est toujours : \alpha_o = \alpha_a + \alpha_b \left(1 - \alpha_a\right)

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 :

  • IPhone OS
  • Mac OS X
  • Windows 2000, XP, Server 2003, Windows CE, Vista et Windows 7
  • L'extension XRender du système de fenêtrage X (utilisé notamment par les distributions GNU/Linux modernes)
  • RISC OS Adjust
  • QNX Neutrino
  • Plan 9
  • Inferno
  • AmigaOS 4.1
  • BeOS, Zeta and Haiku
  • Syllable
  • MorphOS

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


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Alpha blending de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Alpha Blending — L Alpha Blending est une technique graphique consistant à ajouter de la transparence à des objets généralement tridimensionnels. Un objet 3D donné est constitué de surfaces caractérisées soit par une texture soit par une couleur. La technique d… …   Wikipédia en Français

  • Alpha-Blending — ist eine Technik in der Bild oder Videobearbeitung, bei der verschiedene Bilder zu einem Gesamtbild überlagert werden, wobei neben der Farbinformation auch der Alphakanal berücksichtigt wird. Der Alphawert eines Bildpunktes (Pixel) ist dabei ein… …   Deutsch Wikipedia

  • Alpha Blending — ist eine Technik in der Bild oder Videobearbeitung, bei der verschiedene Bilder zu einem Gesamtbild überlagert werden, wobei neben der Farbinformation auch der Alphakanal berücksichtigt wird. Der Alphawert eines Bildpunktes (Pixel) ist dabei ein… …   Deutsch Wikipedia

  • Alpha-Blending — Alpha Blending,   die Darstellung von transparenten farbigen Gegenständen. Das Alpha Blending geschieht bei additiver Farbdarstellung durch eine zusätzliche Farbinformation im Alphakanal, welche die Transparenz angibt …   Universal-Lexikon

  • alpha blending — ● ►en loc. m. ►AFFICH mélange alpha , technique permettant d obtenir des transparences en utilisant le canal alpha des textures …   Dictionnaire d'informatique francophone

  • Alpha blending — (Computer Graphics) rendering of overlapping images which contain alpha values (determines degree of transparency and merging of colors) …   English contemporary dictionary

  • alpha blending — noun A computer graphics technique that simulates translucency by combining colours …   Wiktionary

  • Alpha to Coverage — ist eine Anti Aliasing Technologie die es ermöglicht Alpha Blending Texturen, wie beispielsweise Zäune oder Vegetation zu rendern. Inhaltsverzeichnis 1 Einleitung 2 Technik 3 Siehe auch …   Deutsch Wikipedia

  • Alpha compositing — This image s alpha channel falls off to zero at its base. A checkered backdrop is often used to signal transparency. In computer graphics, alpha compositing is the process of combining an image with a background to create the appearance of… …   Wikipedia

  • Alpha-Kanal — Der Alphakanal oder α Kanal ist ein zusätzlicher Kanal, der in Rastergrafiken zusätzlich zu den Farbinformationen die Transparenz (Durchsichtigkeit) der einzelnen Pixel (Bildpunkte) speichert. Die Darstellung eines Bildes mit Alphakanal auf einem …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”