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ě

ATi Radeon X800 - grafická (r)evoluce

10.5.2004, Zdeněk Kabát, článek
ATi Radeon X800 - grafická (r)evoluce
Přibližně 3 týdny po vypuštění GeForce 6800 vrací kanadská ATi Technologies úder - Radeon X800 vyvíjený pod kódovým označením Loki je na světě. V jádru je čip sice podobný předchozím, ale přichází navíc s masivním paralelismem (až 16 pixel pipeline), novou technologií 3Dc a úpravami v paměťovém řadiči a FSAA. V článku najdete detaily o nové "tajné zbrani" ATi.
Normálové mapování
S výkonem grafických karet rostou i požadavky na kvalitu vykreslované scény a detaily, jaké dokáží karty zpracovat. Základním způsobem, jak vylepšit detaily, je použití více polygonů, což má za následek členitější a přesnější povrchy. Ovšem každý polygon navíc se musí potáhnout texturou, osvětlit apod. a je velkou zátěží pro grafický čip. Proto se hledají nové způsoby, jak zajistit detaily ve scéně a zároveň ušetřit výkon.

Pokud bychom měli proplout celou grafickou pipeline, zjistili bychom, že největší výkon se koncentruje v pixel pipeline, zatímco vertex pipeline s nárůstem geometrie trpí. Proto se techniky spojené s vylepšováním kvality obrazu soustředí v renderovacím segmentu. Mluvím zde o tzv. normálovém mapování (normal mapping), což je základní technika (typ bump mappingu), jak zvýšit kvalitu obrazu bez složitější geometrie obrazu.


Obr. 12 – Princip vytvoření normálové mapy

Na schématu vidíte, jak normálové mapování pracuje. Nejdříve je vyrenderován velmi detailní model požadovaného objektu a k němu příslušný jednodušší model. V dalším kroku se spočítají rozdíly mezi těmito modely a vznikne tzv. normálová mapa. Jde de facto o barevnou texturu, kde jednotlivé odstíny zastupují získané normály (čili směrnice) a podle nich se pak vytváří osvětlení ve finální scéně.

Když se pak přímo ve hře aplikuje normálová mapa, je pro objekt počítáno osvětlení, i když je původní povrch vlastně plochý. Znamená to, že jediná textura zastoupí velmi členitý povrch, který by musel být pro dosažení stejného výsledku pracně skládán v geometrické části.


Obr. 13 – Různé typy komprese a jejich výsledek

Problém ale je, že pro dosažení vyšší úrovně detailů je potřeba i podrobnější normálová mapa s vyšším rozlišením, což klade velké nároky na paměť a sběrnice a následkem je propad výkonu. Proto je potřeba normálové mapy komprimovat. Jednou možností je použití stávajících kompresí DXTC/S3TC, ale vzhledem k povaze normálových map pak dochází k chybám a degradaci kvality výsledné textury. Proto představilo ATi u Radeonu X800 novou kompresi 3Dc.

3Dc komprese
Základem 3Dc komprese je upravená komprese DXT5 (součástí DXTC/S3TC). 3Dc pracuje s bloky o velikost 4x4 pixely, které obsahují 32 bitů – 8-bitové normály pro x, y & z jsou převedeny na barevné složky RGB, alpha kanál zůstává nevyužit. Celkem tedy zabere tento blok 512 bitů, tzn. 64 bajtů v paměti. Nejdříve jsou zrušeny Z hodnoty, které lze poté dopočítat podle vzorce „x^2 + y^2 + z^2 = 1“. Zbývá nám tedy 16 bitů, které zastupují souřadnice x a y.


Obr. 14 – Technika práce komprese 3Dc

Dále jsou v bloku určeny minimální a maximální hodnoty x a y a vypočteno dalších 6 hodnot, které se nachází v daném intervalu. Máme tedy celkem 8 různých hodnot pro každou souřadnici, což znamená 3-bitovou informaci. Z těchto osmi hodnot se pro každý pixel vybere ta, která je mu nejblíže. Celkem tedy máme 4 x 4 x 6 bitů + 32 bitů (x, y min a max) = 128 bitů. Jde tedy o kompresi 4:1.

Technologie 3Dc dále umí dvousložkovou kompresi 2:1, která se hodí pro komprimaci údajů o materiálu (jas, hrubost, průhlednost apod.). Výhodou 3Dc je, že lze použít normálové mapy čtyřnásobné velikosti při zachování stejného dopadu na výkon. Jednou z prvních her, kde půjdou normálové mapy s 3Dc kompresí použít, je Serious Sam 2. Zde je ještě screenshot, kterým demonstruje ATi dopad komprese na kvalitu obrazu:


Obr. 15 – Jedna z demonstrací nové komprese 3Dc