Alfa kompozíció - Alpha compositing

Ennek a színspektrumnak az alfa -csatornája nullára esik a tövénél, ahol összekeveredik a háttérszínnel.

A számítógépes grafika , alfa kompozíciós vagy alpha blending az a folyamat ötvözi egy kép a háttérben, hogy megteremtse a megjelenése részleges vagy teljes átláthatóságot . Gyakran hasznos, ha a képelemeket (képpontokat) külön szakaszokban vagy rétegekben rendereli , majd a kapott 2D képeket egyetlen, végső képként egyesíti, amelyet összetettnek neveznek . A kompozíciót széles körben használják a filmekben, amikor számítógépes képi elemeket kombinálnak élő felvétellel . Az alfa -keverést a 2D -s számítógépes grafikában is használják a raszteres előtér -elemek háttérbe helyezéséhez.

Annak érdekében, hogy a képek képi elemeit helyesen kombinálhassuk , a szín mellett minden elemhez hozzá kell rendelni a hozzá tartozó mattot . Ez a matt réteg tartalmazza a lefedettségi információkat - a rajzolt geometria alakját -, amely lehetővé teszi a kép azon részeinek megkülönböztetését, ahol valamit rajzoltunk, és az üres részeket.

Bár a két kép kombinálásának legalapvetőbb művelete az egyik egymás fölé helyezése, sok műveletet vagy keverési módot használnak.

Leírás

A matt információk tárolására az alfa -csatorna fogalmát Alvy Ray Smith vezette be az 1970 -es évek végén, és teljesen kifejlesztette Thomas Porter és Tom Duff 1984 -es dolgozatában . A 2D képen minden képelemhez (képponthoz) színkombináció kerül tárolásra. Az egyes képpontokra vonatkozó további adatokat 0 és 1 közötti értékben tárolja az alfa -csatorna. A 0 érték azt jelenti, hogy a képpont teljesen átlátszó, és nem nyújt lefedettségi információkat; azaz nincs elzáródás a képpont ablakban, mert a geometria nem fedte át ezt a képpontot. Az 1 érték azt jelenti, hogy a képpont teljesen átlátszatlan, mivel a geometria teljesen átfedi a pixelablakot.

Az alfa -csatorna létezésével lehetséges az összetett képműveletek kifejezése egy összetett algebra segítségével . Például két A és B kép esetén a leggyakoribb kompozíciós művelet az, hogy a képeket úgy kombinálják, hogy A megjelenjen az előtérben, B pedig a háttérben. Ez lehet kifejezni, mint egy több mint B. Amellett, hogy több mint , Porter és Duff meghatározott kompozitálása üzemeltetők a , tartott ki (a kifejezés utal kitámasztó mattító és általában rövidítve ki ), tetején , és XOR (és a fordított üzemeltetők rover , rin , útvonal , és ratop ), ennek során döntéseket keverési színeiben két pixel, ha a lefedettség fogalmilag eltakarja merőlegesen:

Alpha compositing.svg

Például az over operátort úgy lehet elérni, hogy minden képpontra a következő képletet alkalmazzuk:

Itt , és álljon az eredmény pixeleinek színösszetevői mellett, az A kép és a B kép, mindegyik színcsatornára (piros/zöld/kék) külön -külön alkalmazva , és , és a megfelelő pixelek alfa értékei.

Az over operátor valójában a normál festési művelet (lásd Painter algoritmusa ). Bruce A. Wallace a Duff geometriai megközelítésével szemben fizikai reflexiós / áteresztési modell alapján származtatta az over operátort . Az itt és ki üzemeltetők alfa összeállítást megfelelője nyírás . A kettő csak a második kép alfa csatornáját használja, és figyelmen kívül hagyja a színösszetevőket.

Egyenes versus többszörös

Ha alfa -csatornát használnak a képen, két általános ábrázolás áll rendelkezésre: egyenes (nem társított) alfa és előre sokszorosított (társított) alfa.

A egyenes alfa , az RGB komponens képviseli a színe a tárgy vagy pixel, figyelmen kívül hagyva a fényelnyelés.

Az előre sokszorosított alfa esetén az RGB komponensek az objektum vagy pixel emisszióját, az alfa pedig az elzáródást jelzik. A több mint operátor ezután a következő:

Ennek nyilvánvalóbb előnye, hogy bizonyos helyzetekben megmentheti a későbbi szorzást (pl. Ha a képet sokszor használják a későbbi kompozíció során). Az előre sokszorozott alfa használatának legjelentősebb előnyei azonban a korrektség és az egyszerűség, nem pedig a teljesítmény: a többszörösített alfa lehetővé teszi a megfelelő szűrést és keverést. Ezenkívül az előre sokszorosított alfa lehetővé teszi a rendszeres alfa -keverési régiók és az additív keverési móddal rendelkező régiók kódolását ugyanazon a képen.

Feltételezve, hogy a képpont színét egyenes (nem többszörösített) RGBA sorokkal fejezik ki , a (0, 0,7, 0, 0,5) pixelérték olyan pixelt jelent, amely a maximális zöld intenzitás 70% -ával és 50% -os átlátszatlansággal rendelkezik. Ha a szín teljesen zöld lenne, az RGBA értéke (0, 1, 0, 0,5) lenne.

Ha azonban ez a képpont előre sokszorozott alfa -t használ, akkor az összes RGB -értéket (0, 0,7, 0) megszorozzuk, vagy elzárjuk az elzáródás érdekében, a 0,5 -ös alfa -értékkel, amelyet hozzáfűzünk a hozamhoz (0, 0,35, 0, 0,5). Ebben az esetben a G csatorna 0,35 értéke valójában 70% zöld emissziós intenzitást jelez (50% -os elzáródással). A tiszta zöld emisszió kódolása (0, 0,5, 0, 0,5) lenne. Annak ismerete, hogy egy fájl egyenes vagy előre sokszorosított alfát használ -e, elengedhetetlen a fájl helyes feldolgozásához vagy összevonásához, mivel más számításra van szükség. Az is teljesen elfogadható, ha RGBA triplett expresszió van elzáródás nélkül, például (0,4, 0,3, 0,2, 0,0). A tüzeket és lángokat, izzásokat, fellángolásokat és más hasonló jelenségeket csak a kapcsolódó / előre sokszorozott alfa segítségével lehet ábrázolni.

Az egyetlen lényeges különbség a véges pontosságú numerikus számítások színábrázolásának dinamikatartományában van (ami minden alkalmazásban megtalálható): az előtöbbszörözött alfa egyedi ábrázolással rendelkezik az átlátszó képpontokhoz, elkerülve a "tiszta szín" vagy az ebből származó műtermékek kiválasztását. szélső peremekként (lásd a következő bekezdéseket). Egy kapcsolódó / előre sokszorosított alfa -képen az RGB az emissziós mennyiséget jelenti, míg az alfa az elzáródást. Az előre sokszorozott alfa bizonyos gyakorlati előnyökkel rendelkezik a normál alfa -keveréssel szemben, mivel az interpoláció és a szűrés helyes eredményeket ad.

A közönséges interpoláció előre sokszorosított alfa nélkül az RGB információk kiszivárgásához vezet a teljesen átlátszó (A = 0) régiókból, annak ellenére, hogy ez az RGB információ ideális esetben láthatatlan. Ha az átlátszó és az átlátszatlan területek közötti hirtelen szegéllyel rendelkező képeket interpolálja vagy szűri, az olyan színeket eredményezhet, amelyek nem voltak láthatók az eredeti képen. A félig átlátszó területeken is előfordulnak hibák, mivel az RGB komponensek nincsenek megfelelően súlyozva, és helytelenül nagy súlyt adnak az átlátszóbb (alsó alfa) képpontok színének.

Az előtöbbszörözés csökkentheti a rendelkezésre álló relatív pontosságot az RGB-értékekben, ha egész vagy fixpontos ábrázolást használ a színösszetevőknél, ami észrevehető minőségromlást okozhat, ha a színinformáció később világosabb lesz, vagy ha eltávolítja az alfa-csatornát. A gyakorlatban ez általában nem észrevehető, mert a tipikus kompozíciós műveletek során, mint például az OVER, az alacsony pontosságú színinformációk hatása az alacsony alfa-területeken a végső kimeneti képre (kompozíció után) ennek megfelelően csökken. Ez a pontosságvesztés megkönnyíti az előre sokszorosított képek tömörítését is bizonyos tömörítési sémák alkalmazásával, mivel nem rögzítik az átlátszó régiókba rejtett színváltozatokat, és kevesebb bitet tudnak lefoglalni az alacsony alfa-területek kódolására. Ugyanazok a „korlátozások” az alacsonyabb kvantálási bitmélységeknél, mint például a csatornánként 8 bit, az alfa nélküli képekben is jelen vannak, és ez az érv problematikus.

Gamma korrekció

Alfa keverés, nem figyelembe véve a gamma korrekciót
Alfa keverés, figyelembe véve a gamma korrekciót.

A tipikus digitális képek RGB -értékei nem közvetlenül felelnek meg a fizikai fényintenzitásoknak, hanem inkább egy gamma -korrekciós funkcióval tömörülnek :

Ez az átalakítás jobban kihasználja a kódolt kép korlátozott számú bitjét, ha úgy dönt, hogy jobban illeszkedik a nemlineáris emberi fényérzékeléshez.

Ennek megfelelően az ilyen képekkel foglalkozó számítógépes programoknak dekódolniuk kell az RGB-értékeket egy lineáris térbe (a gamma-tömörítés visszavonásával), össze kell keverniük a lineáris fényintenzitást, és újra alkalmazni kell a gamma-tömörítést az eredményre:

A többszörös alfa-val kombinálva az előszorzás lineáris térben történik, a gamma tömörítés előtt. Ez a következő képletet eredményezi:

Vegye figyelembe, hogy csak a színkomponenseken végeznek gamma-korrekciót; az alfa csatorna mindig lineáris.

Más átláthatósági módszerek

Bár hasonló célokra használják, az átlátszó színek és képmaszkok nem teszik lehetővé a egymásra helyezett képpontok és a háttér képpontjainak zökkenőmentes keverését (csak a teljes képképpontok vagy a teljes háttérképpontok megengedettek).

Hasonló hatás érhető el 1 bites alfa csatornával is, amint az a Truevision TGA képfájlformátum 16 bites RGBA magas színű módjában és a kapcsolódó TARGA és AT-Vista/NU-Vista kijelző adapterek magas színű grafikus módjában is megtalálható . Ez az üzemmód minden elsődleges RGB-színre ( 15 bites RGB ) 5 bitet és egy „bitcsatorna” maradó bitet rendel.

A képernyőablak átlátszósága szimulálható a részleges elzáródással, ahol csak 1 bites alfa áll rendelkezésre.

Bizonyos alkalmazások esetén egyetlen alfa-csatorna nem elegendő: például az ólomüveg ablakhoz minden RGB-csatornához külön átlátszó csatorna szükséges, hogy külön modellezze a piros, zöld és kék átlátszóságot. További alfa -csatornák adhatók hozzá a pontos spektrális színszűrési alkalmazásokhoz.

A over operátor analitikus levezetése

Egy harmadik megközelítést találunk, ha két nagyon egyszerű feltevésből indulunk ki. Az egyszerűség kedvéért itt a rövidített jelölést fogjuk használni az over operátor ábrázolásához .

Az első feltevés az, hogy abban az esetben, ahol a háttér átlátszatlan (azaz ), a több mint operátor a konvex kombinációja a és :

A második feltételezés az, hogy az üzemeltetőnek tiszteletben kell tartania az asszociatív szabályt:

Most tegyük fel, hogy van és változó fóliák, míg átláthatatlan. Kíváncsiak vagyunk a megtalálásra

Az asszociatív szabályból tudjuk, hogy a következőknek igaznak kell lenniük:

Tudjuk, hogy átlátszatlan, és ebből következik, hogy átlátszatlan, ezért a fenti egyenletben minden operátor konvex kombinációként írható fel:

Ezért látjuk, hogy ez a forma egyenletét jelenti . Beállításával és kapunk

ami azt jelenti, hogy analitikusan egy képletet kaptunk a kimeneti alfa és a kimeneti szín számára .

Még kompaktabb ábrázolást kapunk, ha észrevesszük, hogy :

Az operátor teljesíti a nem kommutatív monoid minden követelményét , ahol az azonossági elem úgy van kiválasztva, hogy (azaz az azonossági elem bármilyen sor lehet ).

Lásd még

Hivatkozások

Külső linkek