Alpha compositing

In der Computergrafik ist Alpha compositing der Prozess, ein Image mit einem Hintergrund zu verbinden, um das Äußere der teilweisen oder vollen Durchsichtigkeit zu schaffen. Es ist häufig nützlich, Bildelemente in getrennten Pässen zu machen, und dann die resultierenden vielfachen 2. Images in ein einzelnes, endgültiges Image in einem Prozess zu verbinden, hat compositing genannt. Zum Beispiel wird compositing umfassend verwendet, als das Kombinieren des Computers Bildelemente mit der lebenden Gesamtlänge gemacht hat.

Um diese Bildelemente richtig zu verbinden, ist es notwendig, einen verbundenen matte für jedes Element zu behalten. Dieser matte enthält die Einschluss-Information — die Gestalt der Geometrie, die — das Bilden davon möglich wird zieht, zwischen Teilen des Images zu unterscheiden, wo die Geometrie wirklich gezogen wurde und andere Teile des Images, die leer sind.

Beschreibung

Um matte Information zu versorgen, wurde das Konzept eines Alpha-Kanals von Alvy Ray Smith gegen Ende der 1970er Jahre eingeführt, und hat sich völlig in einem 1984-Vortrag von Thomas Porter und Tom Duff entwickelt. In einem 2. Bildelement, das eine Farbe für jedes Pixel versorgt, werden zusätzliche Daten im Alpha-Kanal mit einem Wert zwischen 0 und 1 versorgt. Ein Wert von 0 Mitteln, dass das Pixel keine Einschluss-Information hat und durchsichtig ist; d. h. es gab keinen Farbenbeitrag von jeder Geometrie, weil die Geometrie auf dieses Pixel nicht übergegriffen hat. Ein Wert von 1 Mittel, dass das Pixel undurchsichtig ist, weil die Geometrie völlig auf das Pixel übergegriffen hat.

Wenn ein Alpha-Kanal in einem Image verwendet wird, ist es üblich, auch die Farbe mit dem Alpha-Wert zu multiplizieren, auf zusätzlichen Multiplikationen während compositing zu sparen. Das wird gewöhnlich vormultipliziertes Alpha genannt.

Das Annehmen, dass die Pixel-Farbe mit gerade ausgedrückt wird, hat RGBA Tupel (nichtvormultipliziert), ein Pixel-Wert (0.0, 0.5, 0.0, 0.5) bezieht ein Pixel ein, das 50 % der maximalen grünen Intensität und 50-%-Undurchsichtigkeit hat. Wenn die Farbe völlig grün wäre, würde sein RGBA (0, 1, 0, 0.5) sein.

Jedoch, wenn dieses Pixel Gebrauch vormultipliziertes Alpha, alle RGB-Werte (0, 1, 0) werden mit 0.5 und dann das Alpha multipliziert, am Ende zum Ertrag (0, 0.5, 0, 0.5) angehangen wird. In diesem Fall zeigt der 0.5 Wert für den G Kanal wirklich grüne 100-%-Intensität (mit 50-%-Undurchsichtigkeit) an. Deshalb ist das Wissen, ob eine Datei vormultipliziertes oder gerades Alpha verwendet, für richtig den Prozess oder die Zusammensetzung es notwendig.

Vormultipliziertes Alpha hat einige praktische Vorteile gegenüber dem normalen Alpha-Mischen, weil das vormultiplizierte Alpha-Mischen assoziativ ist und geradlinige Interpolation bessere Ergebnisse gibt, obwohl Vormultiplikation einen Verlust der Präzision und, in äußersten Fällen, einem erkennbaren Verlust der Qualität verursachen kann.

Mit der Existenz eines Alpha-Kanals ist es möglich, compositing Bildoperationen mit einer compositing Algebra auszudrücken. Zum Beispiel, in Anbetracht zwei Bildelemente A und B, soll die allgemeinste compositing Operation die solche Images verbinden, dass A im Vordergrund erscheint und B im Vordergrund erscheint. Das kann als über B ausgedrückt werden. Zusätzlich zu haben Porter und Mehlpudding die compositing Maschinenbediener in, in Aussicht gestellt durch (gewöhnlich abgekürzt), oben, und xor (und der Rückmaschinenbediener-Rover, rin, die Rotte und ratop) von einer Rücksicht von Wahlen im Mischen der Farben von zwei Pixeln definiert, wenn ihr Einschluss begrifflich orthogonal überzogen wird:

Über den Maschinenbediener, ist tatsächlich, die normale malende Operation (sieh den Algorithmus des Malers). Im Maschinenbediener ist das Alpha compositing gleichwertig des Ausschnitts.

Als ein Beispiel, über den Maschinenbediener kann durch die Verwendung der folgenden Formel auf jeden Pixel-Wert vollbracht werden:

:

wo das Ergebnis der Operation ist, die Farbe des Pixels im Element A ist, die Farbe des Pixels im Element B ist, und und das Alpha der Pixel in Elementen A und B beziehungsweise sind. Wenn es angenommen wird, dass alle Farbenwerte mit ihren Alpha-Werten vormultipliziert werden , können wir die Gleichung für die Produktionsfarbe als umschreiben:

:

und resultierender Alpha-Kanalwert ist

:

Jedoch kann diese Operation nicht für alle Anwendungen passend sein, da es nicht assoziativ ist.

Die assoziative Version dieser Operation ist sehr ähnlich; nehmen Sie einfach den kürzlich geschätzten Farbenwert und teilen Sie ihn durch seinen neuen Alpha-Wert wie folgt:

:

Bildredigieren-Anwendungen, die erlauben, sich von Schichten allgemein zu verschmelzen, bevorzugen diese zweite Annäherung.

Analytische Abstammung über den Maschinenbediener

Gepäckträger und Mehlpudding haben eine geometrische Interpretation des Alphas compositing Formel gegeben, indem sie orthogonale Einschlüsse studiert haben. Eine andere Abstammung der Formel, die auf einem physischen reflectance/transmittance Modell gestützt ist, kann in einem 1981-Vortrag von Bruce A. Wallace gefunden werden.

Eine dritte Annäherung wird dadurch gefunden, mit zwei sehr einfachen Annahmen aufzubrechen. Für die Einfachheit werden wir hier die Schnellschrift-Notation verwenden, für über den Maschinenbediener zu vertreten.

Die erste Annahme ist, dass im Fall, wo der Hintergrund undurchsichtig ist (d. h.)., über den Maschinenbediener vertritt die konvexe Kombination und:

:

Die zweite Annahme ist, dass der Maschinenbediener die assoziative Regel respektieren muss:

:

Lassen Sie uns jetzt annehmen, dass und variable Durchsichtigkeit haben, wohingegen undurchsichtig ist. Wir interessieren uns für die Entdeckung

:.

Wir wissen aus der assoziativen Regel, dass der folgende wahr sein muss:

:

Wir wissen, dass das undurchsichtig ist und so folgt, der undurchsichtig ist, so in der obengenannten Gleichung kann jeder Maschinenbediener als eine konvexe Kombination geschrieben werden:

:

\begin {richten }\aus

\alpha_o C_o + (1 - \alpha_o) C_c &= \alpha_a C_a + (1 - \alpha_a) (\alpha_b C_b + (1 - \alpha_b) C_c) \\

&= \alpha_a C_a + (1 - \alpha_a) \alpha_b C_b + (1 - \alpha_a) (1 - \alpha_b) C_c

\end {richten }\aus

</Mathematik>

Folglich sehen wir, dass das eine Gleichung der Form vertritt. Indem wir untergehen, und wir bekommen

:\begin {richten }\aus

\alpha_o &= 1 - (1 - \alpha_a) (1 - \alpha_b), \\

C_o &= \frac {\\alpha_a C_a + (1 - \alpha_a) \alpha_b C_b} {\\alpha_o},

\end {richten }\aus</Mathematik>

was bedeutet, dass wir eine Formel für das Produktionsalpha und die Produktionsfarbe dessen analytisch abgeleitet haben.

Durch eine noch kompaktere Darstellung wird gegeben, dass zu bemerken:

:

C_o = \frac {\\alpha_a} {\\alpha_o} C_a + \left (1 - \frac {\\alpha_a} {\\alpha_o }\\Recht) C_b

</Mathematik>

Es ist auch interessant zu bemerken, dass der Maschinenbediener alle Voraussetzungen eines nichtauswechselbaren monoid erfüllt, wo das Identitätselement solch dass gewählt wird (d. h. das Identitätselement kann jedes Tupel damit sein.)

Das Alpha-Mischen

Das Alpha-Mischen ist eine konvexe Kombination von zwei Farben, Durchsichtigkeitseffekten in der Computergrafik berücksichtigend. Der Wert in der Farbkennzeichnung erstreckt sich von 0.0 bis 1.0, wo 0.0 eine völlig durchsichtige Farbe vertritt, und 1.0 eine völlig undurchsichtige Farbe vertritt. Dieser Alpha-Wert entspricht auch dem Verhältnis von "SRC über die Sommerzeit" in Porter und Mehlpudding-Gleichungen.

Durch den Wert der resultierenden Farbe wird gegeben:

:

\left\{\

\begin {Reihe} {l }\

out_A = src_A + dst_A (1 - src_A) \\

out_ {RGB} = \bigl (src_ {RGB} src_A + dst_ {RGB} dst_A \left (1 - src_A \right) \bigr) \div out_A \\

out_A = 0 \Rightarrow out_ {RGB} = 0

\end {ordnen }\

\right.

</Mathematik>

Wenn der Bestimmungsort-Hintergrund undurchsichtig ist, dann und wenn Sie darin zur oberen Gleichung eingehen:

:\left\{\\begin {Reihe} {l }\

out_A = 1 \\

out_ {RGB} = src_ {RGB} src_A + dst_ {RGB} (1 - src_A)

\end {ordnen }\\right.</Mathematik>

Der Alpha-Bestandteil kann verwendet werden, um zu roten, grünen und blauen Bestandteilen ebenso, als in 32-Bit-RGBA, oder wechselweise zu verschmelzen, es kann drei Alpha-Werte geben, die entsprechend jeder der primären Farben für die geisterhafte Farbenentstörung angegeben sind.

Bemerken Sie, dass die RGB-Farbe vormultipliziert werden kann, folglich die zusätzliche Multiplikation vor RGB in der Gleichung oben sparend. Das kann ein beträchtliches Sparen in der gegebenen Verarbeitungszeit sein, dass Images häufig aus Millionen von Pixeln zusammengesetzt werden.

Andere Durchsichtigkeitsmethoden

Obwohl verwendet, zu ähnlichen Zwecken erlauben durchsichtige Farben und Bildmasken das glatte Mischen der überlagerten Bildpixel mit denjenigen des Hintergrunds (nur ganze Bildpixel oder ganze Hintergrundpixel erlaubt) nicht.

Eine ähnliche Wirkung kann mit einem 1-Bit-Alpha-Kanal, wie gefunden, in den 16 Bit RGBA Highcolor Weise des Truevision TGA Bilddateiformat und verwandter TARGA erreicht werden, und AT-Vista/NU-Vista zeigen Highcolor von Adaptern grafische Weise. Diese Weise widmet 5 Bit für jede primäre RGB-Farbe (15-Bit-RGB) plus ein restliches Bit als der "Alpha-Kanal".

Für einige Anwendungen ist ein einzelner Alpha-Kanal nicht genügend: Ein Buntglasfenster verlangt zum Beispiel, dass ein getrennter Durchsichtigkeitskanal für jeden RGB Kanal die rote Durchsichtigkeit, grüne Durchsichtigkeit und blaue Durchsichtigkeit modelliert. Mehr Alpha-Kanäle können für genaue geisterhafte Farbenfiltrieren-Anwendungen hinzugefügt werden.

Anwendungen

Das Alpha-Mischen wird in einer Vielfalt von Anwendungen verwendet. Es wird durch am meisten Betriebssystems/GUIs heimisch unterstützt, um Fenster (wo anwendbar) oder Produkte zu ziehen:

  • AmigaOS 4.1
  • Androide
  • BeOS, magnussoft ZETA, Haiku
  • Inferno
  • Mac OS X, EIN/AUSGABE-STEUERSYSTEM
  • MorphOS
  • Plan 9
  • QNX Neutrino
  • RISC OS passen an
  • Silbe
  • webOS
  • Windows 2000 oder später, CE, Beweglicher
  • Die XRender Erweiterung auf das X Fenstersystem (schließt das moderne Systeme von UNIX und Linux ein)
  • ZWERG 3.0
Einheit

Andere Software kann vermischte durchsichtige Elemente des Alphas im GUI unabhängig von zur Verfügung gestelltem APIs von OS durch das Vorbestehen von Elementen in einem Speicherpuffer außer Schirm vor dem Anzeigen von ihnen verwenden. (Solcher als, wenn man teilweise durchsichtige composited Elemente in einem eingebetteten System zeigt, das nur einen einfachen Rahmenpuffer zur Verfügung stellt.) wird Software von Compositing verwendet, um Images zu verbinden, und macht umfassenden Gebrauch des Alphas compositing Techniken.

Siehe auch

Links


Anonyme Alkoholiker / Reihe-Datenstruktur
Impressum & Datenschutz