Hardwarové T&L

Až dosud byly možnosti grafických karet při zobrazení trojrozměrného světa vyrovnané. Cesty vývoje se však výrazně oddělily (aby se po čase opět spojily) a proti sobě stojí dvě tajemná označení – T&L a T-buffer – do detailu zpracované objekty vs. přirozenější obraz nebo chcete-li nVidia vs. 3dfx.
Až dosud byly možnosti grafických karet při zobrazení trojrozměrného světa vyrovnané. Cesty vývoje se však výrazně oddělily (aby se po čase opět spojily) a proti sobě stojí dvě tajemná označení – T&L a T-buffer – do detailu zpracované objekty vs. přirozenější obraz nebo chcete-li nVidia vs. 3dfx.

Vývoj grafických karet určených pro běžné uživatele (což zahrnuje především hráče počítačových her) je často spojován se slovem revoluce. Většinou se však jedná o přizpůsobení již existující technologie a její prodej za zlomek původní ceny. Do této kategorie patří i hardwarové T&L neboli převedení výpočtů spojených s transformacemi a osvětlením z procesoru na grafickou kartu. Hardwarové T&L jsou předmětem tohoto článku, T-buffer bude předmětem druhé části, jen co se objeví nové grafické karty Voodoo 4 a 5 s čipy VSA-100 od 3dfx.

Úvodem zmíním postup vedoucí k zobrazení trojrozměrného světa na obrazovce počítače, který je k pochopení T&L nezbytný, jedná se totiž o jednu z jeho nejdůležitějších částí. Ve druhé části článku se budu věnovat přínosu, ale také různým nárokům, které přináší hardwarové T&L.

Transformace a osvětlení
K objasnění tohoto pojmu je třeba vrátit se k definici problému a postupu jeho řešení. Problém je definován takto: Je dán trojrozměrný svět, ve kterém je umístěn pozorovatel (uživatel). Známe jeho polohu, orientaci a směr, kterým se dívá. Cílem je zobrazit to, co pozorovatel vidí, na obrazovce monitoru (nebo jiném výstupním zařízení). Postup řešení můžeme rozdělit do několik kroků, jeho velmi zjednodušenou podobu jsem převzal z materiálů firmy nVidia.

1. Zpracování vstupu, úprava světa
Aplikace převezme vstup uživatele (stisk klávesy, pohyb myši …) a provede odpovídající změny (změna polohy pozorovatele …). Zajistí také simulaci světa (pohyb objektů, změna vlastností objektů …).

2. Tvorba scény
Aplikace na základě polohy, orientace a směru pohledu pozorovatele vybere část světa, která by mohla být viditelná a kterou budu dále nazývat scénou. Tuto scénu popíše a předá ji grafické kartě (přesněji řečeno jejím ovladačům) prostřednictvím volání služeb grafického rozhraní (DirectX, OpenGL …). V současnosti jsou objekty tvořící scénu reprezentovány svým povrchem, který je většinou tvořen sítí trojúhelníků. Polohu jejich vrcholů udává trojice souřadnic (pro každý rozměr jedna), které závisí na zvoleném souřadném systému. Souřadných systémů však existuje více (v našem případě 3 až 4), neboť řešení některých problémů v průběhu vykreslování se změnou souřadného systému výrazně zjednoduší.

Souřadnice vrcholů závisí na zvoleném systému (volbě jeho os), který představuje jiný způsob pohledu na stejný prostor. Podle zvoleného systému pak prostor nazýváme různě, např. prostor, ve kterém je definován svět, se nazývá world-space.

3. Transformace
Aby bylo možné se scénou dále pracovat, je třeba ji převést – transformovat do souřadného systému pozorovatele (eye-space). Vhodné přirovnání lze najít ve skutečném světě. Pozorovatel (člověk) používá systém souřadnic, který mu umožňuje určit polohu objektů – vlevo | vpravo, nahoře | dole, vpředu | vzadu. Předpokládejme, že na počátku je totožný se souřadným systémem světa. Otočí-li se pozorovatel např. doprava, poloha objektů se pro něj změní. Jinými slovy, změní se souřadnice objektů v prostoru pozorovatele, zatímco v prostoru světa zůstávají stejné (pokud se objekty nepohybují). V naší situaci se však pozorovatel (uživatel sedící u počítače) nepohybuje. Chce-li se z výchozí polohy např. otočit o určitý úhel doprava, je třeba scénu otočit o stejný úhel doleva – provést transformaci z prostoru světa do prostoru pozorovatele pro všechny vrcholy objektů tvořících scénu. Můžete se podívat na obrázek Transformace, který obsahuje všechny prováděné transformace. První z nich, tedy transformace z prostoru objektu do prostoru světa, je prováděna pouze pro některé objekty, především ty, které se ve světě vyskytují vícekrát, a bylo by tedy zbytečné je duplikovat. Stačí jejich popis uchovat jen jednou a zapamatovat si transformaci, která zajistí jejich umístění do světa, v našem případě je to např. otočení o 90 stupňů doprava a posunutí dozadu. Transformaci z prostoru světa do prostoru pozorovatele jsem už zmínil výše a na poslední transformace dojde v popisu pátého kroku. Pod každým obrázkem objektu v jednom z prostorů jsou uvedeny souřadnice jednotlivých bodů, takže si můžete udělat dobrou představu, jak celý proces probíhá.

Transformace 1/2Transformace 2/2

4. Osvětlení
Je-li scéna transformována, je třeba ji osvětlit. Na základě zvoleného světelného modelu a druhu světelného zdroje je určena barva patřičných vrcholů. Např. bodový světelný zdroj vysílá světlo určité barvy všemi směry stejně. Barva zasaženého vrcholu je tak dána (kromě jiného) barvou světelného zdroje a útlumem, který závisí na vzdálenosti. Složitější výpočty jsou spojeny např. se směrovým světelným zdrojem (baterka …), kde je nutné brát v úvahu také jeho orientaci (plocha před baterkou je osvětlená více než plocha více napravo).

5. Příprava k vykreslení
Před vykreslením je třeba provést ještě jednu transformaci, a to z prostoru pozorovatele do prostoru obrazovky (screen-space). Jde o perspektivní promítání, kdy je bod trojrozměrného prostoru (eye-space) promítnut do dvojrozměrného prostoru obrazovky. V tomto kroku jsou také odstraněny nebo ořezány trojúhelníky, které zasahují mimo obrazovku.

6. Vykreslení
Scéna je konečně zobrazena. Objekty jsou pokryty texturami, na základě barvy vrcholů jsou dopočítány barevné příspěvky bodů povrchu objektů, je vyřešena viditelnost objektů.

Uvedený postup je opakován při tvorbě každého snímku (frame). Grafické karty přitom vykonávaly pouze jeho malou část – poslední dva kroky bez perspektivního promítání. Vše ostatní zůstalo na procesoru. Transformace a osvětlení jsou přitom výpočetně náročné a současné procesory (např. Intel Celeron 500 MHz) zvládnout transformovat a osvětlit (8 světelných zdrojů) přibližně 600 000 trojúhelníků za sekundu. Při 60 snímcích za sekundu tak dostáváme omezení složitosti scény – 10 000 trojúhelníků, což není moc, např. postava Lary ve hře Tomb Raider IV je tvořena přibližně 600 trojúhelníky. Výpočty spojené s transformací a osvětlením však vyžadují pouze 3 základní aritmetické operace – sčítání, násobení a odmocňování. Je tedy logické navrhnout jednoúčelovou, zato však velmi rychlou jednotku, která by tyto operace prováděla, tedy přesunout výpočty spojené s T&L z procesoru na čip grafické karty. Hlavní výhody jsou dvě:

  • Možnost výrazného zvýšení složitosti scény, což znamená více detailů.
  • Snížení zátěže procesoru, který lze využít např. na lepší animaci postav, detekci kolizí nebo umělou inteligenci (věrohodnější svět).
Kde jsou však klady, jsou i zápory. Na první pohled by se mohlo zdát, že kartu s podporou T&L lze dobře využít i ve spolupráci se slabším procesorem. To je sice pravda, na druhou stranu si však kartu zřejmě kupujete proto, abyste její možnosti využili naplno. Větší množství detailů však znamená větší množství dat, které je třeba zpracovat a poslat grafické kartě, což klade vysoké nároky jak na procesor, tak především na propustnost cesty mezi procesorem, pamětí a grafickou kartou. Budete-li tedy v budoucnu chtít naplno využít možností T&L na grafické kartě (hardwarové T&L), počítejte s rychlým procesorem a AGP 4×.

Hlavním (ale pouze dočasným) nedostatkem hardwarových T&L je však neexistence aplikací, které by ukázaly jejich možnosti. V oblasti grafických karet pro běžné uživatele jde totiž o velmi mladou technologii a jediný dostupný čip je GeForce 256, který můžete najít např. na kartě Creative 3D Blaster Annihilator recenzované v Computeru 24/99. Aby mohla aplikace využívat hardwarové T&L, musí především využívat služeb OpenGL nebo DirectX 7 (a vyšší). Pokud však aplikace služeb těchto rozhraní využívá, neznamená to ještě využití hardwarových T&L (Unreal Tournament …), obě rozhraní tuto možnost pouze nabízejí.

Zajímavým příkladem je Quake 3: Arena, který využívá služeb OpenGL a může využít i hardwarové transformace. Výsledky (počet snímků za sekundu) při použití grafické karty s čipem GeForce 256 a středního množství detailů se příliš neliší od některých grafických karet, které hardwarové T&L neobsahují. Důvod je jednoduchý – současné hry musí být přijatelně rychlé na grafických kartách, které jsou nejrozšířenější, a právě ty hardwarové T&L neobsahují. Tomu odpovídá i složitost scény, která je volena tak, aby se s ní dobře vypořádal i průměrně rychlý procesor. Jednotka T&L je tedy vytížena pouze z malé části a do hry tak vstupují jiná omezení, především fill-rate. Pokud by se složitost scény zvýšila, přestal by procesor stačit, zatímco jednotka T&L by stále měla dostatečnou rezervu. Řešením je např. škálovatelnost, což znamená, že u grafické karty bez podpory T&L jsou použity objekty s malým množstvím detailů, zatímco u karet s podporou T&L se množství detailů zvyšuje. Toto řešení je však náročné na implementaci, a proto se míra detailů většinou stanovuje pevně.

I když se výkon jednotky T&L může zdát dostatečný, je konečný, a jednou tak musí nastat situace, kdy grafická karta bez podpory hardwarových T&L, zato však s dostatečnou hodnotou fill-rate, dosáhne s pomocí rychlého procesoru lepších výsledků než karta, která je podporuje. Pokud tedy narazíte na strop výkonu jednotky T&L, tak vám rychlejší procesor nepomůže, zatímco v jiných případech ano, alespoň do okamžiku, dokud nenarazíte na konečný strop – maximální hodnotu fill-rate. Více však na toto téma v příští části.

Z uvedených poznatků plyne následující: přínos hardwarových T&L je zřejmý, je však třeba čas, aby se tato technologie prosadila. Osobně odhaduji alespoň 1 rok. Do té doby se snad hardwarové T&L stanou samozřejmostí a objeví se aplikace, které jich skutečně využijí. Investovat dnes do grafické karty s podporou T&L bych doporučil pouze technologickým nadšencům, karty jsou drahé, technologie se dále vyvíjí a chybí aplikace. Uvidíme za rok.

T&L v kostce
Výhody:

  • Výrazné zvýšení množství detailů (snad už konečně zmizí ploché stěny, podlahy a stropy, hranaté postavy a zjednodušené objekty)
  • Osvětlení nejen prostředí, ale také postav
  • Snížení zátěže procesoru, který lze využít ke zpracování mnohem dokonalejší iluze virtuálního světa.
Nevýhody:

  • Zatím neexistují aplikace.
  • Stále je potřeba výkonný počítač.
  • Technologie se neustále vyvíjí, takže současná řešení se nemusí ukázat jako nejlepší.
Více se dočtete v čísle 03/00 časopisu Computer.

Nejnovější komentáře


NEJČTENĚJŠÍ ČLÁNKY

Nejkrásnější konzolové hry: když na výkonu nezáleží (galerie)

Nejkrásnější konzolové hry: když na vý…

Kdo říkal, že na hezké hry potřebujete jen to nejvýkonnější PC?

15.  7.  2018 | | 5 N/A
DOOM: Desková hra - akční nářez na vašem stole (recenze)

DOOM: Desková hra - akční nářez na vaš…

Na poli počítačových her je DOOM skutečnou legendou. V této recenzi se ale podíváme na jeho mladšího deskoherního sourozence. Nutno říct, že rodinné jméno se mu ve světě deskových her podařilo adaptovat se ctí.

7.  7.  2018 | | 6 N/A
Rozšíření do KC Deliverance opět láká na krásy českých lesů

Rozšíření do KC Deliverance opět láká …

Je čas vrátit se do českých luhů a hájů a okusit krásy našeho středověku.

12.  7.  2018 | | 2 N/A
V Minecraftu postavíte cokoliv, podívejte se na Paříž z 19. století

V Minecraftu postavíte cokoliv, podíve…

Minecraft nás svými možnostmi nepřestává překvapovat. Nejzajímavější projekty jsou však stále ty, které simulují reálná města.

17.  7.  2018 | | 8 N/A
KC Deliverance: From the Ashes: znáte Jindru, všechno spraví! (recenze)

KC Deliverance: From the Ashes: znáte …

První DLC do Kingdom Come: Deliverance konečně spatřilo světlo světa a neslibuje málo. Máte se stát rychtářem a spravovat vlastní vesničku. Přesto nás DLC vůbec nenadchlo.

10.  7.  2018 | | 5 N/A