Piksel to zbiór składników. Tradycyjnie te elementy są czerwone, zielone i niebieskie, a każdy z nich pobiera 8 bitów danych.
Ponieważ często korzystne jest wyrównanie pamięci w określony sposób, niektóre z nich są czasami pakowane w 32 bity przestrzeni. Pozostawia to 8 bitów dodatkowych danych na końcu każdego piksela. Ponieważ nie jest to ani czerwony, ani zielony, ani niebieski, potrzebuje nazwy - a alfa była względnie bez znaczenia.
Teraz, gdy macie układ pikseli ułożonych w prostokąt, otrzymujemy:
RGBARGBARGBARGBA
RGBARGBARGBARGBA
RGBARGBARGBARGBA
RGBARGBARGBARGBA
czasami chcesz porozmawiać tylko o jednym z powyższych kolorów, powiedz czerwony:
R***R***R***R***
R***R***R***R***
R***R***R***R***
R***R***R***R***
ten podselekcja tylko jednego elementu każdego komponentu pikselowego nazywa się na obrazie „kanałem”. Ponieważ piksele mają 4 składniki, ten obraz ma 4 kanały.
Istnieją inne formaty obrazów, w których nie ma kanału alfa:
RGBRGBRGBRGB
RGBRGBRGBRGB
RGBRGBRGBRGB
RGBRGBRGBRGB
i istnieją formaty o różnej liczbie bitów na składnik pikseli (3,5,8,16,32), a niektóre mają nierównomierne bity na składnik pikseli.
Kanał staje się „wirtualną” tablicą tylko jednego komponentu pikseli. (Mówię wirtualnie, ponieważ między każdym elementem jest krok, podczas gdy tablice tradycyjnie nie mają takiego kroku)
Część RGB też nie jest stała - możesz mieć obraz w skali szarości z kanałem alfa lub bez niego, możesz mieć obraz CMYK (cyjan magenta żółty blacK, zwykle w subtraktywnej przestrzeni kolorów), możesz mieć obraz, który ma cała masa różnych kanałów kolorów utworzonych przez lustrzany raytracer lub instrument naukowy.
Chociaż piksele traktowałem tak, jakby zawsze były ciągłe, możliwe jest również podzielenie kanałów na wiele lokalizacji, na przykład:
RRRRGGGGBBBBAAAA
RRRRGGGGBBBBAAAA
RRRRGGGGBBBBAAAA
RRRRGGGGBBBBAAAA
lub nawet
RRRR
RRRR
RRRR
RRRR
GGGG
GGGG
GGGG
GGGG
BBBB
BBBB
BBBB
BBBB
AAAA
AAAA
AAAA
AAAA
lub mieć spakowane RGB i A zapisane w osobnym buforze.
Jest to rzadkie w przypadku danych na żywo w grach, ponieważ nowoczesne karty graficzne są często projektowane wokół pikseli RGBA. RGB można obsługiwać równomiernie, a przy pomocy Można wykonać sąsiednie szybkie obliczenia, które umożliwiają kompozycję piksela RGBA na uprzednio pomalowanym tle.
Kanał alfa jest często używany do informacji o przezroczystości. Irytujące jest to, że maksymalna wartość alfa jest czasami traktowana jako przezroczysta, a czasem jako nieprzezroczysta, przez różne podstawy kodu. To znowu jest obecnie mniej powszechne. Kanał alfa został również wykorzystany do uporządkowania bufora Z (jak daleko jest piksel od przeglądarki), aby umożliwić nieuporządkowane rysowanie sceny, a tradycyjnie mapowanie mip odbywało się poprzez przesunięcie 2x 2x (lub 4x mniej pikseli) obrazu o niższej rozdzielczości do rekursywnie kanał alfa obrazu o wyższej rozdzielczości.
Nawet w systemie wykorzystującym piksele RGBA znaczenie tych pikseli może się nie zgadzać. Czy R mierzy, ile czerwieni widzi człowiek lub ile fotonów czerwieni powinno być emitowanych? Jest to różnica między liniowymi i nieliniowymi przestrzeniami kolorów i wpływa na prawidłowy sposób łączenia wspomnianych pikseli z kanałem przezroczystości.