Nejčastější pojmy z oblasti 3D grafiky

Realistický prostorový obraz může být na počítači vytvářen mnoha technikami. V jejich popisu se objevuje mnoho zdán...


Realistický prostorový obraz může být na počítači vytvářen mnoha technikami. V
jejich popisu se objevuje mnoho zdánlivě nesrozumitelných výrazů. Zde se
pokusíme udělat v těchto pojmech pořádek a co nejvíce jich vysvětlit a uvést do
souvislostí.
Mezi zcela základní patří Wireframe Model (drátěný model), Flat Shading
(stínování ploch), Gouraud a Phong Shading (Gouraudovo a Phongovo stínování).
Drátěný model je nejjednodušší a nejméně náročný na výpočetní výkon. Na
dnešních výkonných PC nemá smysl ani pro náhled. Dokonce už na osmibitech se ve
hrách používal spolu se skrýváním neviditelných hran. Stínování ploch je už
vyspělejší, každá ploška je vybarvena odstínem určeným podle definovaného
materiálu a směru a vzdálenosti od světelného zdroje. Použít lze samozřejmě
softwarově, ale zároveň je to základní technika hardwarových 3D akcelerátorů.
Gouraudovo a Phongovo stínování dokáže předmět vymodelovaný z hranatých plošek
zaoblit. Plocha totiž není vykreslována jednou barvou, ale ta se plynule mění s
ohledem na okolní plochy. Gouraudovo stínování je běžné v 3D akcelerátorech.
Phongův model však dokáže vytvořit jasnější odlesky, proto je vhodnější pro
kovové plochy.
Texturování (také potahování modelu texturami nebo mapování textur Texture
Mapping) dělá zásadní obrat ve vzhledu 3D světa. Základ je jednoduchý plocha
nemá určenu jednu barvu, ale bitmapu, kterou se jakoby polepí. Snadno se tak
bez zbytečného zmenšování ploch docílí barevně členěného povrchu ale i dojmu
hrubého povrchu. A je jedno, zda se jedná o zobrazení dřevěného nebo hrubě
otesaného kamenného povrchu či třeba plakátu na zdi. Na texturu lze samozřejmě
dále aplikovat stínování ať už ploché, nebo Gouraudovo pro vyhlazení a jiné
efekty. Pro svůj význam a efekt je texturování už dlouhou dobu nezbytnou
součástí 3D her, vykreslovaných čistě softwarově i základní funkcí 3D
akcelerátorů. Často se objevuje i vyhrazená paměť pouze pro skladování textur.
Nakonec právě při mapování textur by se měla projevit hlavní výhoda AGP portu.
Zvláštní variantou textur je Video Mapping (mapování videa). Textura položená
na povrch není statická, nýbrž se jedná o animaci. Tento efekt není tak
důležitý, přesto je podporován i v akcelerátorech.
Pro správné uspořádání v prostoru a rychlé rozlišení viditelných a
neviditelných ploch slouží Z-Buffering. Ke každému bodu je navíc přidána
informace o jeho vzdálenosti od "oka", tedy jeho Z souřadnice, a vykreslují se
vždy od vzdálenějších k bližším. Bilinear Filtering (někdy i Sampling,
bilineární filtrování) zlepšuje především dojem z prostorového obrazu a jeho
kvalitní provedení je tedy hlavně doménou 3D karet určených pro hry. Jedná se o
efekt rozplývání příliš zvětšených textur, které vypadají v původním Doomu nebo
Quakovi čtverečkovitě. Pokud by jeden pixel textury vyšel na víc než jeden
pixel, obrazovky je obraz dopočítáván podle vzdálenosti od středů okolních bodů
textury. Bilineální se nazývá proto, že je textura dopočítávána ve směru dvou
na sebe kolmých os.
Prostorovou verzí bilineárního filtru je Trilinear MIP-mapping (také se
objevuje trilineární filtrování). Zde je potřeba aby textura byla uložena v
několika úrovních podrobnosti, což se pak nazývá MIP struktura. Podle aktuální
vzdálenosti od plochy se vzhled počítá aproximací ze dvou nejvhodnějších
úrovní. Tím se do procesu filtrování přidá další rozměr, další osa, proto se
označuje jako trilineární.
V materiálech některých výrobců se objevuje také perspektivně korektní
MIP-Mapping, což neznamená nic jiného, než že plocha s MIP-mapovanou texturou
není nijak nepřirozeně deformovaná, ale vypadá tak, jak člověk, zvyklý na
reálnou perspektivu, očekává.
Další klíčovou technikou, která zjednodušuje vytváření pohledu na prostorový
svět, ale přináší i možnost dalších efektů, se
jmenuje Alpha Blending, resp. Transparency (alfa klíčování, resp. průhlednost).
Druhý název dostatečně naznačuje, o co především jde, ne však jak. Prakticky
Alpha Blending znamená přidání další "barevné složky" (kromě červené, modré a
žluté) do textury. Tato složka je nazvána alfa-kanál a určuje míru průhlednosti
od zcela průhledné až po pevnou hmotu. Úplná průhlednost se s úspěchem používá
pro vykreslování objektů se složitým obrysem, který se nemění, jako jsou stromy
nebo výbuchy, případně odletující částice. Takový útvar má v modelu zcela
triviální tvar trojúhelník, čtverec, kvádr, jehlan. Ovšem na textuře místa kde
"nic není" jsou nastavena jako průhledná, jednoduše tak vznikne třeba strom,
mezi jehož větvemi prosvítá pozadí. Druhé využití je nabíledni, občas jsou
totiž potřeba průsvitná či poloprůhledná tělesa. Tak je pomocí alfa-kanálu
nastavena průhlednost vodní hladiny, mlhy, kouře nebo kuželů světla. Stejně se
zdánlivá průsvitnost hodí i pro velmi rychle se pohybující tělesa, jako např.
listy vrtule.
Fogging (čili zamlžení) se uplatní hlavně ve venkovních scénách. Jeho typickým
úkolem je rozmlžení horizontu nebo všeho, co je v příliš velké dálce. Cílem v
rámci přiblížení obrazu realitě je odstranění ostrého přechodu vykreslované
krajiny a oblohy.
Další metoda pro vylepšení dojmu z texturovaných povrchů se nazývá Bump Mapping
(mapování hrbolů). Starší techniky používané v 3D grafice si vystačily se
zdánlivou nerovností povrchu, vyvolanou pouze původní texturou. Při Bump
Mappingu se na rovnou plošku nanese nejprve mapa struktury (hrbolatosti) a
teprve poté vlastní textura. Při stínování povrchu se samozřejmě bere ohled na
strukturu.
Hodnocení provedení trojrozměrného akcelerátoru je dvojí jednak kvalitativní,
kdy pečlivějším pohledem na obrazovku zjistíme, které z použitých metod jsou
dobře implementovány, a ve kterých naopak se objevují chyby. Pokud jsou některé
techniky provedeny u různých akcelerátorů trochu jinak, ale bez chyb bývá těžké
rozhodnout, co je lepší. Pokud je hra optimalizována pro určitý akcelerátor,
lze spíš hovořit o čipu či kartě vhodnější pro danou hru. Důležitá však je i
rychlost vykreslování prostorového světa.
U akcelerátorů jsou uváděny např. následující parametry:
Polygon (Triangle) Rate a Fill Rate (rychlost vykreslování polygonů a pixelů).
Obvykle udávané v milionech polygonů nebo trojúhelníků, resp. pixelů za
sekundu, někdy i samostatně pro různé 3D techniky. Platí, že čím je větší tato
nominální rychlost, tím složitější scénu stihne karta vykreslovat. U příliš
pomalých karet se buď objevují chyby v zobrazovaných scénách, nebo klesá
framerate na nepřijatelnou hodnotu.
Framerate (Snímková rychlost) se uvádí v počtu snímků za sekundu (fps Frames
Per Second f/s) a je zásadním parametrem pro dojem plynulého pohybu. Už od dob
filmu je známo, že lidské oko začíná při rychlosti okolo 24 snímků za sekundu
vnímat pohyb jako plynulý. Vyšší rychlost dojem dále zlepšuje, ale příliš
vysokou rychlost (cca nad 50 f/s) je jistě lepší vyměnit za lepší rozlišení. Na
skutečnou snímkovou rychlost ve hrách nemá vliv jen 3D akcelerátor, ale celý
systém a hlavně procesor, který scénu pro akcelerátor připravuje.
Pro zlepšení nebo zrychlení obrazu může být použito i několik obecných
grafických technik.
Například Antialiasing je určen k vyhlazování hran. Každá hrana je tvořena
jednotlivými pixely a je tedy zubatá. Antialiasing přepočítává barvu pixelu
podle toho, kolik jeho plochy by mělo připadat na objekt v popředí a kolik na
pozadí. Dithering je pomocná metoda pro překonání malé barevné hloubky (počtu
odstínů). Potřebný odstín je vytvářen pomocí určitého rastru dostupných
odstínů. Na obrazovce má Dithering smysl při 256 barvách, ne už při 64 tisících
odstínů. Větší význam má spíše u různých technologií barevného tisku.
Výrazy Framebuffer a Double Buffer (dvojitý buffer) se týkají přímo provedení
zobrazovacího adaptéru, ať už to je grafická karta, 3D akcelerátor nebo něco
ještě jiného. Jako Framebuffer se označuje část grafické paměti, která obsahuje
vytvořený obraz, který bude posílán na monitor. Pokud je tento blok paměti
zdvojen, je v jedné polovině hotový obraz vysílaný na monitor a v druhé se
zatím připravuje další obraz. A když je hotový, jen se rychle přesune do
zobrazované části. Výsledkem je plynulejší pohyb jak ve hrách, tak i třeba při
přehrávání videa.
Pro komunikaci systému s programy je často definováno obecné rozhraní zvané API
(Application Programm Interface). Pro 3D karty je definováno několik
speciálních rozhraní obecně označovaných jako 3D API.
Nejstarší a nejznámější je OpenGL, které pochází z pra-covních stanic Silicon
Graphics. Akcelerátory s plnou podporou OpenGL jsou velmi drahé a stejně jako
celé rozhraní patří do světa profesionální grafiky. Výhodou OpenGL je, že
funguje v různých unixových systémech i pod Windows NT. Pro hry mají význam jen
tzv. Miniporty. Tedy rozhraní vycházející z OpenGL, ale zjednodušené pro
konkrétní hry a akcelerátory.
MS DirectX je kompletní rozhraní pro hry z dílen Microsoftu. Skládá se z
několika částí, ale pro grafiku mají význam jen DirectDraw a Direct3D. Direct3D
podporují všechny karty, které by mohly sloužit pro hry. Proto díky DirectX
aspirují Windows 95 (i 98) na nejrozšířenější herní platformu na PC. Verze her
pro Windows obvykle přímo vyžadují DirectX. Rozhraní GLIDE není zcela obecné,
ale vyvinula jej firma 3dfx pro své čipy Voodoo. Hry mohou GLIDE využívat nejen
pod Windows 95, ale i pod Windows NT a DOSem. Vzhledem k rozšířenosti čipů od
3Dfx je
jisté, že ani toto rozhraní rychle nevymizí.
Ti, které matou označení 3Dfx karty nebo 3Dfx technologie, by měli vědět, že
jsou ne zcela korektně odvozeny od jména firmy 3Dfx Interactive, Inc., jejíž
čipy jsou nejrozšířenější v herních 3D akcelerátorech.
8 1063 / kat









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.