Technologie 3D grafiky: Jakým kouzlem se tvoří obraz?

Současné hry by se neobešly bez sestavování trojrozměrné scény. Za tímto procesem je ale celá řada technologií a složitých výpočtů. Pronikněte do tajů prostoru.
Kapitoly článku

Celý proces renderování trojrozměrné scény není nic jiného, než převod matematicky popsaného prostorového útvaru do dvourozměrné podoby z pohledu kamery. Výstupní zařízení jsou stále dvourozměrná (a to i v případě 3D monitorů), takže nezbývá, než plochu rozdělit do jednotlivých bodů a každý z nich vyplnit požadovanou barvou. Tak snadné to však nebude.

Průchod potrubím

Proces renderování je ze softwarového hlediska možné označit termínem pipeline (doslova potrubí). Vstupem do pipeline jsou jednoduché matematické objekty (body, čáry, trojúhelníky), výstupem obrazová data. Tento softwarový proces popisují hojně využívané knihovny Direct3D nebo OpenGL. Pro pochopení funkce stavby 3D scény bude nutné pochopit průchod skrz pipeline, který přímo souvisí s hardwarem grafické karty.

Klepněte pro větší obrázek
Data k zobrazení procházejí přes pipeline, která je zpracuje, obohatí o generované prvky a pošle k vykreslení na obrazovku

Fyzická pipeline GPU označuje samostatnou cestu, která na začátku přijme matematický popis a na konci vrátí sadu pixelů. V závislosti na architektuře daného procesoru je těchto cest několik, takže karta zpracovává v každém cyklu paralelně mnoho výpočetních úloh.

Bez modelu ani ránu

Základem 3D scény je model, který je nutno předat grafické kartě. Ta jej očekává v první fázi renderování, nazývané Input Assembly, sestavení vstupu. Do paměti karty je uložen objekt v podobě geometrického popisu tak, aby z něj bylo možno poskládat drátěný model (wireframe). Podstatné jsou tedy jen body, hrany a zlomy, kdy jednoduchým zkompletováním předaných dat získá karta základní představu o objektu.

Klepněte pro větší obrázek
Síťový model je základem každého renderování, sada vrcholů následně projde bouřlivou transformací, rasterizací ploch a obarvováním pixelů

Účelem přípravné fáze Input Assembly je rozdělení dat na vrcholy (vertex) a seznamy čar a trojúhelníků s dalšími doplňkovými informacemi, které budou následně využity při zpracování geometrickými shadery. Neméně důležité je obohacení vstupu o systémem generované hodnoty – data se rozdělí podle logické návaznosti a jsou jim přiřazeny identifikátory (primitive id, instance id, vertex id). Pak je možné snadno se odkazovat na objekty, které je nutno zpracovat a které už jsou zpracovány.

Vrchol po vrcholu

Procesory vykonávající jednotlivé grafické operace jsou nazývány shadery a jsou historicky děleny na vertex, geomery a pixel shadery. Označení shader můžeme chápat jako programovatelnou součást grafického čipu vyhrazenou pro výpočet dané úlohy, dnes už jde ale pouze o software, který je spouštěn na unifikovaných shaderech – stream procesorech. Stream procesor je obecnějším pojetím shaderu, jde o samostatnou paralelní výpočetní jednotku bez pevného určení. Dřívější rozdělení grafického jádra na bloky vyhrazených shaderů nevyužívalo optimálně zdroje. Data se během průchodu pipeline předávala mezi bloky GPU a velká část jádra byla v každou chvíli nevyužita. Technologie stream processingu odkazuje na instrukce SIMD (Single Instruction, Multiple Data), kdy je nad větším množstvím dat vykonáván totožný postup.

 
Polygony tvořené trojúhelníky optimalizují využití paměti, nový trojúhelník vznikne přidáním jediného vrcholu
 

Po načtení dat a jejich přípravou ve fázi Input Assembly následuje zpracování vertex shadery. Každý spoj v popsané drátové síti je označen jako vrchol, všechny tyto vrcholy pak procházejí transformacemi – je potřeba je umístit do správné polohy v prostoru, případně s nimi provést operace, jako je morfování, a už v této fázi je možno pracovat také s osvětlováním, které se však dnes častěji přenechává komplexnějším pixel shaderům. V průběhu pipeline má aplikace vertex shaderů své pevné místo, pokud není potřeba zpracovávat žádný z vrcholů, musí být na aplikační úrovni definován tzv. pass-through vertex shader. Vstupem i výstupem vertex shaderu je právě jeden vrchol.

Témata článku: Hardware, Technika, Technologie, 3D, TESS, Teko, Dvourozměrný obraz, Fáze, Jimi, Direct3D, Vytvořený objekt, Graf, Speciální případ, Vyrovnávací paměť, Iluze, Ideální způsob, Ono, Uložená data, Tesla, Depth, Pevné místo, Polygon, Výstupní data, Trojrozměrný model, Výstupní zařízení


Určitě si přečtěte

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 65

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

** Total Commander je na Windows takřka legendou ** Licence však stojí více než tisíc korun ** Našli jsme pro vás deset alternativ dostupných zdarma

Karel Kilián | 140

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 56


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji