reklama

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, Technologie, Vertex, Depth, Directx 11, Stream, Apod, Lightning, Pass, Voda, OSA

6 komentářů

Nejnovější komentáře

  • alefnula 27. 10. 2013 10:36:50
    Jen drobná oprava - u bump mappingu se nehýbe s geometrií ani s pixely,...
  • Tomcat5a 25. 10. 2013 15:32:38
    Autorovi děkuji za nádherný článek,tohle je u mne novinařina.
  • dolph1888 25. 10. 2013 12:06:23
    Co mě by zajímalo více u toho síťového modelu je tvorba kódování videa...
reklama
Určitě si přečtěte

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

** V Brně byl velký výpadek služeb UPC ** Důvodem je překopnutý páteřní kabel ** V některých lokalitách služby stále nefungují

5.  12.  2016 | Jakub Čížek | 104

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

** Zmizí klasické vyhledávače ** Budeme programovat buňky ** Kvantové počítače překonají šifry

6.  12.  2016 | Jakub Čížek | 36

11 tipů na dobrý stolní počítač: od základu po herní mašiny

11 tipů na dobrý stolní počítač: od základu po herní mašiny

** Postavte si stolní počítač! Máme pro vás 11 vzorových sestav s rozpisem komponent ** Většina tipů cílí na hráče, věnujeme se ale i základnímu PC a počítačům na střih videa ** Nadělte si nový počítač třeba pod stromeček

5.  12.  2016 | Adam Kahánek | 74

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

** V notebooku s cenou nad 20 tisíc nesmí chybět kvalitní displej a rychlé úložiště ** Za dalších deset tisíc můžete dostat navíc styl nebo výkonnější komponenty ** Vybírat můžete z různých velikostí i konstrukcí

8.  12.  2016 | Stanislav Janů | 86


reklama