Tajemství 128-bitových barev
Jak všichni jistě víte, v současnosti je nevětší použitá barevná hloubka pro výstup na monitor (nikoliv třeba u scannerů) True Color, nebo-li 32 bitů. 32-bitové celočíselné barvy podporují max. 2^32 barev, což je, jak zjistíme jednoduchým výpočtem, přes 4 miliardy rozdílných odstínů. Jak se zdá, někomu to ale nestačilo (John Carmack a spol :-).
Plné čtyři miliardy barev se na Vám ale nikdy nezobrazí, protože pro jednotlivé barevné kanály nejsou využity všechny bity, ale něco zbývá pro alpha kanál. S trochou výpočtů můžeme zjistit i hodnoty. Při nejčastěji používaném barevném poměru RGBA 8:8:8:8 připadá na každý kanál 8 bitů, tedy 2^8 = 256 odstínů. Při kombinaci jednotlivých barevných kanálů tedy získáme 256^3 = 16,777,216 rozdílných barev, což je onen True Color. Už se ale objevily také grafické čipy s podporou 10-bitového formátu barev, který rozděluje jednotlivé bity pro kanály RGBA v poměru 10:10:10:2. To znamená 2^10 = 1024 barev na každý barevný kanál a 1024^3 = přes miliardu různých barevných odstínů.
Co ale 32-bitová celočíselná hloubka barev postrádá, je dynamičnost, protože každý 8-bitový barevný kanál obsahuje možné hodnoty od 0 do 255. Jako dynamičnost označujeme rozdíl mezi nejnižší a nejvyšší hodnotou. To znamená, že dynamičnost v 32-bitové hloubce barev je pouze 255 barev. A proti tomu se staví vývojáři her, kteří chtějí mít velice tmavé i velice světlé barvy, kdy je rozpětí 1 – 255 nedostatečné.
Abychom pochopili 128-bitovou hloubku barev, musíme poznat, jak pracují čísla s plovoucí desetinnou čárkou v počítačovém světě. FP (floating point) čísla se totiž skládají z popisného bitu, několika bitů pro exponent a mnoho bitů pro mantisu. Vzoreček by vypadal takto: x = m*2^e („m“ je mantisa a „e“ je exponent). Znamená to tedy, že nejnižší a nejvyšší FP číslo je specifikováno exponentem a mantisa určuje barevnou hloubku. U 128-bitových barev se používá 32 bitů na kanál, které jsou rozloženy takto: 1 popisný bit, 8 bitů pro exponent a 23 bitů pro mantisu, což ústí v dynamické rozmezí 2^ -128 – 2^127. To znamená, že je použito čistých 23 bitů na kanál oproti 8 bitům u True Color.
Zvýšení dynamičnosti barev a barevné hloubky výrazně přispívá ke kvalitě obrazu. Zde je několik příkladů použití 128-bitových FP barev:
32-bitové barvy vypadají oproti jasným a dynamickým barvám 128-bitové FP barevné hloubky vybledle. Přechody jsou daleko jemnější a jsou znatelné velice světlé i tmavé barvy.
I karosérie tohoto auta vypadá daleko lépe. Na levé straně vidíte klasické 32-bitové celočíselné barvy, zatímco napravo je použit 64-bitový dot3 bump mapping. Všimněte si především přechodů mezi tmavšími a světlejšími částmi odráženého prostředí na kapotě.
Zde je možná efekt 64-bitových barev ještě výraznější, kde pravá část vyniká plynulými přechody danými obrovským množstvím barev. I lesk je díky jasnějším barvám vyšší.
Ještě je nutné podotknout, že 128-bitová FP čísla jsou použita pouze pro výpočty a před výstupem na monitor musí být barvy opět převedeny na 32-bitová čísla ve formátu 10:10:10:2 nebo 8:8:8:8. Výsledný efekt to ale příliš nemění a hlavně použití více textur a bump-mappingu přináší velký rozdíl.
Takže je vidět, že 128-bitové barvy nejsou nesmysl, jak se někteří domnívali, ale podstatně zvyšují kvalitu obrazu. Tímto je tedy ukončen rozpor, zdal-li jsou tyto barvy potřebné, ale na druhou stranu potřebují čtyřnásobnou šířku pásma, což jsou zatím nedosažitelná čísla. V každém případě jde ale o velký příslib do budoucnosti.
Zdroj: Tom’s Hardware