reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Tajemství 128-bitových barev

2.8.2002, Zdeněk Kabát, článek
Tajemství 128-bitových barev
Nedávno se objevila zpráva, která pořádně rozvířila vody v grafickém průmyslu – ATi R300 bude podporovat 128-bitové barvy. Z počátku se zdálo, že efekt bude minimální, protože lidské oko tolik barev nedokáže rozpoznat, ale to je omyl. Tento článek popisuje smysl 128-bitových barev včetně jejich praktického uplatnění a obrázků.
DirectX 9.0, o které se v souvislosti s novými čipy od ATi a nVidie začíná hodně mluvit, obsahuje mnoho nových vlastností. Specifikace Pixel Shader 2.0 umožňuje kromě 160 instrukcí v jednom programu také podporu barev s plovoucí desetinnou čárkou. Podporovaná barevná hloubka je 64 nebo 128 bitů! Nyní si rozebereme přínos zvýšené barevné hloubky.

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:



Obr. 1 – Rozdíl je opravdu vidět
klikněte pro zvětšení

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.



Obr. 2 – Auto s aplikací bump-mappingu
klikněte pro zvětšení


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



Obr. 3 – Stejné auto z větší vzdálenosti
klikněte pro zvětšení

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.

reklama