Grafická karta bez tajemství

1. 1. 2005

Sdílet

Rozumíte všem pojmům okolo grafických karet? "Displacement Mapping" nejvyšší čas zjistit, co to znamená. Každý, kdo čte technické informace o své grafické kartě, často rozumí snad...
Rozumíte všem pojmům okolo grafických karet?

"Displacement Mapping" nejvyšší čas zjistit, co to znamená. Každý, kdo čte
technické informace o své grafické kartě, často rozumí snad jen spojkám a
předložkám. V tomto článku vám všechny důležité funkce vysvětlíme jak obrázkem,
tak slovem.
Nejen náruživí hráči počítačových her při nákupu nové grafické karty často
narazí na výrazy typu High Dynamic Range. Velmi oblíbené jsou i nicneříkající
superlativy, jako "CineFX 3.0 Engine působivé kinoefekty proti síle myšlenky".
Dnes si stručně vysvětlíme, co se za těmito slovy skrývá, a vy se můžete sami
rozhodnout, zda by vám nestačil třeba jen "CineFX 2.0 Engine".

Základy
Ve své podstatě jsou úplně všechny novější grafické karty uspořádány stejně:
jejich srdcem je čip, často nazývaný Graphic Processing Unit (GPU). Moderní GPU
obsahují až 222 milionů tranzistorů.

1.Shader
GPU moderních karet má k dispozici dva typy shaderů. Vertex Shader vytváří z
mnohoúhelníků trojrozměrné objekty, umisťuje je do prostoru a stará se o
světelné efekty. Pixel Shader u trojrozměrných objektů definuje barvu a
průhlednost všech obrazových bodů, a tím abstraktnímu objektu jakoby vdechuje
život. Firma nVidia používá u svých novějších grafických čipů Geforce 6800
(Ultra) Shader Model 3.0, nazývaný CineFX 3.0 Engine. Naproti tomu ATI používá
u Radeonu X800(XT) ještě specifikaci 2.0. Která verze je lepší? Výhodou
standardu 3.0 je jeho teoreticky neomezená flexibilita. Zatímco Shader 2.0
např. obarvuje mnohoúhelníky jen předem stanovenými barvami, dokáže Shader 3.0
barvy dynamicky měnit v závislosti na úhlu dopadajícího světla. Standard 3.0
podle Microsoftu plně využívá až DirectX 9.0c. Navíc se nesmí zapomenout na to,
že zdrojový kód 3D programu musí dynamické možnosti, které standard Shader 3.0
nabízí, podporovat. Takové programy jsou i dnes stále poměrně vzácné. Počítá
se, že programátoři naplno využijí možností standardu 3.0 až v průběhu příštích
měsíců.

2.Pipelines a tvorba obrazu
Oba již zmíněné druhy shaderů jsou umístěny v pipelines grafického čipu. A
právě pipelines mají na starosti tvůrčí práci shaderů a počítají (neboli
renderují) z nich jednotlivé obrazy tím, že stanoví rozmístění a barvu každého
bodu na monitoru. Celý výpočet trvá jen zlomek vteřiny a velmi dobře ilustruje
výpočetní výkon dnešních GPU, které jsou v mnoha směrech komplikovanější než
hlavní procesory počítačů. Paměťový řadič grafické karty pak pošle vytvořený
obrázek do operační paměti grafické karty a teprve potom na obrazovku. Obecně
platí, že čím vyšší je frekvence GPU a počet pipelines, tím rychleji grafický
čip obrázek renderuje. Čím vyšší je frekvence paměti a čím propustnější je
paměťová sběrnice karty, tím více informací dokáže řadič paměti zpracovat.

3D funkce
Technický pokrok se u žádné počítačové komponenty neprojevuje tak zřetelně jako
právě u grafických karet. Hnacím motorem jsou v tomto případě především
požadavky hráčské obce. Důsledkem je skutečnost, že výrobci grafických čipů
přicházejí v půlročních intervalech se stále novými funkcemi. Naproti tomu to
zpravidla trvá jeden až dva roky, než se objeví 3D aplikace, které jsou tyto
nové funkce schopné využít. V následujících odstavcích vám nabízíme objasnění
významu těch nejdůležitějších, popřípadě nových funkcí grafických karet.

3.Alpha Blending
Slouží ke správnému zobrazení průhledných objektů jako jsou okna nebo vodní
plochy. Přitom každý obrazový bod dostane ke své hodnotě pro barvu přiřazenu
ještě hodnotu Alpha, která vyjadřuje míru transparentnosti (průhlednosti).

4.Anizotropní filtrování
Umožňuje ostřejší zobrazení povrchové struktury (textury) u velmi vzdálených 3D
objektů. Podle typu grafické karty lze nastavit stupeň kvality od 2x do 16x.
Ovšem i tady platí, že čím vyšší kvalita, tím vyšší jsou i nároky na výkon GPU.

5.Anti-aliasing
Vyhlazení hran zjemňuje u přímých linií rušivé schodovité (zubaté) efekty a
"třpyt" hran při trhavých rychlých pohybech kamery. Existují dva druhy
anti-aliasingu: prvním je Edge Anti-Aliasing, kdy grafický čip vyhlazuje pouze
hrany dvou sousedních polygonů nebo jejich textur, Full Screen Anti-Aliasing
(FSAA) pak vyhlazuje hrany v celém obrazu.
Tuto funkci nastavujete v ovladačích grafické karty a 3D programech. V
závislosti na typu karty lze nastavit kvalitu vyhlazování od dvoupo
šestnáctinásobnou. S rostoucím rozlišením obrazovky se schodovité efekty i lesk
hran snižují. Obecně platí, že čím vyšší je úroveň anti-aliasingu a rozlišení,
tím vyšší bude kvalita obrazu a současně porostou nároky na výkon GPU.

6.Bump Mapping
Vytváří na hladkém povrchu trojrozměrný efekt, pokud na nějakém 3D objektu leží
textura, která má vrhat stín.

7.Clipping
Clipping šetří grafické kartě práci tím, že před zobrazením 3D objektu vypočítá
všechny jeho neviditelné plochy.

8.Lens Flares
Pokud dopadne paprsek světla na nějaký optický systém, např. na čočku
dalekohledu, pak tato funkce spočítá fyzikálně přesně kruhový nebo hvězdicový
efekt odlesku a oslnění.

9.Displacement Mapping
Vývojáři používají tento typ textury, aby dodali trojrozměrnému obrazu krajiny
zdání výšek a hloubek. Všechny povrchové struktury jsou přitom neustále ve
vzájemné interakci s okolím: mohou vrhat vlastní stíny a měnit formu např.
pokud dojde k výbuchu sopky. Shader Model 3.0 je dokonce schopen zobrazení v
reálném čase.

10.Environment Bump Mapping
Tento texturový efekt dodává do 3D objektů další povrchovou strukturu, aby se
tyto objekty vůči svému okolí fyzikálně správně zrcadlily. Používá se třeba u
vody nebo skla či lesklých povrchů obecně.

11.High Dynamic Range
Umožňuje při nastavení světlosti objektu poněkud lepší možnost odezvy. Pokud
např. stojí pozorovatel v nějakém tmavém prostoru, do něhož otvorem proniká
sluneční světlo, pak tmavé oblasti místnosti už nejsou tmavé jako v noci, nýbrž
získají i v detailech světlejší nádech.

12.Mip Mapping
U této techniky existují určité textury ve více stupních kvality, přičemž to,
jak kvalitní textura se použije, závisí na vzdálenosti objektu od pozorovatele.

13.Morphing
Jeho pomocí se dá 3D objekt plynule přeměnit na jinou formu.


14.Motion Blur
U rychle se pohybujících 3D objektů simuluje mírné rozostření, které známe z
reálného světa.

15.Multitexturing
Místo jedné povrchové struktury se při použití funkce Multitexturing přiřadí 3D
objektům několik textur. Např. kovový sud má jednu texturu pro svůj typický
vzhled, druhá dodává sudu patinu rzi a třetí simuluje vlastnosti odrazu, které
se získají z kombinace obou předcházejících textur.

16.Perspective Correction
Pro pozorovatele se povrchové struktury ve trojrozměrném prostoru jeví jako
zkreslené, pokud postupujete shora směrem dolů. Funkce Perspective Correction
tento efekt napodobuje takovým způsobem, že reprodukuje textury špatně z
hlediska výpočetního, ale správně z hlediska perspektivy.

17.Procedural Texturing
Tento typ textury je ideální pro zobrazení 3D objektů, jejichž povrchová
struktura se neustále mění, což je třeba příklad vody. Zde se nepoužívají žádné
předem připravené textury, ale povrch se neustále dynamicky ve správný čas
přepočítává.

18.Real Time Shadows

Objekty, které vrhají stín, vypadají ve virtuálním trojrozměrném světě daleko
realističtěji. Při použití funkce Real Time Shadows lze stíny počítat v reálném
čase. Do výpočtu jsou přitom zahrnuty prakticky všechny změny objektu, a tím i
změny osvětlení. Funkce Multiple Real Time Shadows zohledňují při výpočtech
stínů změnu umístění většího počtu pohybujících se objektů.

19.Textura
Jedná se vlastně o dvojrozměrný obrázek, jenž propůjčuje abstraktnímu 3D
objektu povrchovou strukturu. I pohybující se dvojrozměrný objekt se dá použít
jako textura, např. proto, aby simuloval obrazovku zapnuté televize.

20.Komprese textur
Čím vyšší je rozlišení textury, tím realističtěji 3D objekt vypadá. Aby textury
v paměti grafické karty nezabíraly příliš místa, popřípadě aby bylo okamžitě k
dispozici větší množství textur, používají moderní 3D aplikace komprimované
textury. Vcelku samozřejmou podmínkou je, aby GPU i DirectX podporovaly metody
komprese textur. Nejpoužívanějšími metodami přitom jsou S3TC a DXTC. U karet
ATI generace Radeon X je poměrně novou metodou 3DC, což je velmi účinná
kompresní metoda, kterou bohužel DirectX 9.0c nepodporuje.

21.Ultra Shadow I a II
Technologie výpočtu stínů v reálném čase od firmy nVidia šetří výpočetní
kapacitu tím, že počítá stíny, vržené pouze objekty v zorném poli pozorovatele.
Ultra Shadow II rozšiřuje verzi I o další specialitu: programátoři mohou pomocí
této funkce stanovit v prostoru virtuální hranice, v nichž budou zdroje světla
ovlivňovat stín jednotlivých objektů.

22.Z-Buffering
Tato funkce porovnává informace o hloubce barev u těch obrazových bodů, které
mají v dvojrozměrném prostoru stejnou pozici. Může tak všechny body, které
nejsou pro pozorovatele v trojrozměrném prostoru viditelné, vyčlenit a vůbec je
na monitoru nezobrazit.