Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Grafické enginy her a reálný svět

23.2.2012, Pavel Kovač, článek
Grafické enginy her a reálný svět
V tomto článku se podíváme na enginy moderních her, porovnáme si je s reálným světem a se softwarovými rendery. Doba pokročila a dnešní hry již vypadají velice reálně. Čím se tedy liší od reálného světa a moderních rendering systémů? Doplněno o 4 kapitoly.

Deffered shading


Tato technologie se dnes používá u většiny FPS her. Má tu výhodu, že lze použít větší množství světel bez výrazného dopadu na výkon. Jde o princip, kdy se scéna počítá v první fázi bez světel, ale s dvěma vrstvami (pass) navíc. První je Z-Depth mapa a druhá Normal mapa.




- Z-Depth mapa -


Na obrázku Z-Depth mapy si můžete všimnout, že nezohledňuje průhlednost objektů. Z toho vychází jedna z hlavních nevýhod Deffered shadingu. Světlo není spočítáno za průhledným objektem. Současné moderní enginy však už tento problém řeší na úrovni samotných objektů. V Unreal Engine se musí na průhledný objekt aplikovat shader, který tento neduh odstraní. Musí však modeláři na tento nedostatek myslet a nezapomenout na něj, jinak dojde k nekorektnímu osvětlení scény.




- normal mapa -




- scéna bez světel (diffuse) -


Pomocí těchto dvou resp. tří vrstev se spočítá osvětlení pro celou scénu zároveň a každé světlo ovlivňuje jen pixel, který je v aktuálním pohledu vidět. Scéna je tedy vypočítána pouze jednou (na geometrické bázi). Běžné stínování probíhá zcela opačně. Každé světlo je spočítáno zvlášť a teprve po výpočtu (několikanásobném) celé scény dochází ke složení do výsledného obrazu.




- výsledný složený obraz -


Stíny ve scéně jsou obvykle počítány na základě Shadow Map (tzn. už je pryč doba čistě Stencil Shadow, které jsou dnes používány obvykle na lokální zdroje světla). Každý zdroj světla má určenou velikost své mapy v závislosti na požadované kvalitě. Crysis 2 používá např. pro slunce 1024x1024, což sice není mnoho, ale umožňuje tak rendering celé scény i na konzolích. Zde je vidět, že dnešní konzole jsou opravdovou brzdou ve vývoji grafiky na PC. Naštěstí velikosti map se dají velmi jednoduše měnit v nastavení (tedy pokud to vývojáři umožní) a tím lze zvyšovat kvalitu scény.




- výsledná scéna -




- Shadow mask od slunce -


Každé světlo si přiřadí svou barvu pro Shadow map a všechny mapy se následně složí do jedné výsledné. Až teprve poté jsou zakomponovány do scény stíny.




- složené masky od všech světel -


Nevýhody Deffered shadingu jsou v nutnosti použít speciální Antialiasing (běžný nelze vzhledem k povaze výpočtu použít). Obvykle se tedy používají různé detekce hran. Pro účely Deffered shadingu byl vyvinut Morphological Antialiasing a z něho odvozený FXAA. Oba jsou založeny na detekci hran ve výsledném obrazu a dopočítávání pixelů. Výhodu mají v tom, že jsou extrémně rychlé a dostatečně kvalitní. Další popis se však do toho článku už nevejde. Na závěr přidávám k Deffered Shadingu alespoň ukázku MLAA.




- ukázka MLAA zdroj: Alexander Reshetov Intel Labs -