www.svethardware.cz
>
>
>

Moderní grafické technologie: Unreal Engine 3

Moderní grafické technologie: Unreal Engine 3
, , článek
Abychom se také trochu odtrhli od běžných témat, která Svět Hardware nabízí, přinášíme i popis něčeho jiného – moderních grafických technologií v praxi. Jedním z hlavních živitelů grafických novinek bude Unreal Engine 3, který nabízí plné využití nové generace GPU. A je opravdu o co stát!
reklama
V minulých pěti týdnech spatřily světlo světa oba GPU (nebo chcete-li VPU) nové generace od ATi a nVidie – Radeon X800 a GeForce 6800. Zatímco Radeon je spíše evolučním skokem, GeForce přichází s kompletně přeorganizovanou pipeline a novými technologiemi, které zahrnují i Shader Model 3.0. Ovšem mnoho lidí se ptá, zda lze tyto technologie reálně využít. Odpověď nám může dát následujících pár odstavců popisujících moderní herní „motor“ – Unreal Engine 3.

Společnost Epic Games, která za celým projektem Unreal stojí, zveřejnila nedávno na těchto stránkách kompletní popis Unreal Enginu 3, který navazuje na předchozí verze licencované mnoha vývojáři. Unreal Engine 2 využívaly např. hry Splinter Cell, Rainbow Six 3, Deux Ex: Invisible War, XIII a další. Proto je nový engine velmi očekáván.

Nejdříve se podívejme na několik efektů, které Unreal Engine 3 přinese:
  • Podpora 64-bit HDR (High Dynamic Range) s pokročilými světelnými efekty. HDR je obecné označení pro zpracování dat s vysokou přesností umožňující libovolné manipulace s barvami bez ztráty dat. V Unreal Enginu bude použit 64-bitový HDR, tedy 16 bitů pro každou barevnou složku, což stačí pro zachování většiny informací o jasu a barvě.


Obr. 1 – Příklad efektu zvaného Light bloom s použitím 64-bit HDR
Klikněte pro zvětšení
  • Podpora moderních technik pro renderování a per-pixel osvětlení. Tato část enginu zahrnuje např. normálové mapy (popisované níže), parametrické osvětlení Phong či virtuální displacement mapping. Displacement mapping je označení pro pokročilou funkci vertex shaderu, kdy je povrch upraven podle zvláštní černobílé textury, která určuje jakési vrstevnice. Podle nich je pak povrch přepočítán a upraven, takže na rozdíl od bump-mappingu se mění i silueta, vrhané stíny apod. Dále jsou podporovány techniky pro útlum barev, self-shadowing apod.


Obr. 2, 3 – Příklad použití různých efektů s per-pixel osvětlením, stínováním, normálovými mapami apod.
Klikněte pro zvětšení
  • Pokročilé dynamické stíny. Podle dokumentace podporuje Unreal Engine 3 tři techniky stínů, které mohou být libovolně kombinovány. Navíc je možné je spojit s útlumem barev (snížení sytosti a jasu barev) a různým typem osvětlení. Zde jsou příklady:
      o Dynamické stencil stíny s podporou dynamických světelných zdrojů. Jinými slovy, renderování stínů při pohybujícím se světle v reálném čase.
      o Dynamické postavy vrhající měkké a rozptýlené stíny. To znamená, že kromě klasických tvrdých stínů jsou podporovány i nové typy, které více odpovídají realitě, nehomogennímu osvětlení apod.


Obr. 4, 5 – Rozptýlené a měkké dynamické stíny od pohyblivých zdrojů světla
Klikněte pro zvětšení
  • Vysoká podpora shaderů a materiálů. Unreal Engine 3 nabízí široké možnosti práce s materiály, je možné libovolně za běhu vytvářet shadery a kontrolovat je v grafickém rozhraní o rychlosti renderovacích programů jako 3DStudio MAX či Maya. Je také možné nejen přidávat shadery, ale i jejich komponenty, vše on-the-fly, tedy za běhu kompilátoru.
  • Modelování terénu s podporou moderních technologií. Možnost dynamického modelování s použitím displacement mappingu, normálových map, libovolných materiálů, dynamického LOD mozaikování apod. Engine také pomáhá programátorům s vytvářením krajiny, po vyhodnocení profilu terénu může přidat trávu a různé rostliny (rovina), skály (vysoké svahy) či sníh (vrcholky). Podporovány jsou také různé typy mlhy (u velkých vzdáleností či výšek).




Obr. 6, 7 – Aplikace různých typů stínů a mlhových efektů (mlha ve velkých vzdáleností, přízemní mlha)
Klikněte pro zvětšení

Normálové mapování

Způsob normálového mapování jsem již podrobněji popisoval v preview na Radeon X800, ale neuškodí si jeho princip zopakovat. Při vytváření modelů jednotlivých postav, nestvůr, scén apod. programátor vytvoří dva modely – jeden jednoduchý, který bude použit přímo ve hře a jeden vysoko-polygonový, skládající se až z několika milionů trojúhelníků. Následně jsou tyto dva modely porovnány a z rozdílů je vytvořena normálová mapa.

Normálová mapa je de facto textura, která ale místo jednotlivých barevných složek obsahuje jednotlivé souřadnice normál, čili směrnic (při 32-bitové hloubce je použito 8 bitů pro x, y a z). Ve hře je pak tato normálová mapa aplikována zpět na model a podle ní jsou pak jednotlivé pixely osvětleny tak, aby byl výsledek realističtější a více připomínal původní model. Zde jsou názorné obrázky použití v Unreal Enginu 3:


Obr. 8, 9 – Model nestvůry ze hry (8000 polygonů) a čistě geometrický model z 3D Studia Max (3 miliony polygonů)
Klikněte pro zvětšení

A zde vidíte výsledek:


Obr. 10 – Výsledný model ve hře osvětlený podle normálové mapy
Klikněte pro zvětšení

Podobným způsobem může být mapován i terén. Zde je model téže scény, která je ve skutečnosti složena z 500 tisíc polygonů, zatímco model sloužící k vytvoření normálové mapy obsahoval kolem 100 milionů polygonů:




Obr. 11, 12 – Modelování venkovních scén pomocí normálových map
Klikněte pro zvětšení

Pokud Vás zajímá ohledně Unreal Enginu 3 více, podívejte se na tuto jeho homepage. Mimo jiné je na ní řečeno, že se ve scénách počítá současně s 5-20 postavami o 3-12 tisících polygonech, že v typické scéně se bude nacházet 300-1000 viditelných objektů a počet trojúhelníků se bude v jednu chvíli pohybovat mezi 200 000 a 1 200 000. Počet světel bude něco mezi dvěma a pěti. Prostě a jednoduše, paráda pohledět.

Pozn.: Těm, kteří dočetli až sem, bychom chtěli položit jednu otázku – zajímaly by Vás podobné články i v budoucnu? Tento text se již blíží pomyslné hranici záběru našeho serveru, ale pokud se ukáže jako úspěšný, budeme se podobnou problematikou v rámci možností zabývat. Diskuse je otevřená.
reklama
Nejnovější články
Consumer Reports už nedoporučuje Teslu Model 3, je nespolehlivá Consumer Reports už nedoporučuje Teslu Model 3, je nespolehlivá
Consumer Reports opět mění status doporučení elektromobilu Tesla Model 3. Ten už jednou toto doporučení ztratil, aby ho po opravě získal zpět. Vypadá to však, že spolehlivost a kvalita Modelu 3 nejsou úplně OK, a tak doporučení opět ztrácí.
Dnes, aktualita, Milan Šurkala
Intel zve lidi, aby se v rámci "Odysey" zúčastnili vývoje jeho GPU Intel zve lidi, aby se v rámci "Odysey" zúčastnili vývoje jeho GPU
Raja Koduri nedávno zval šikovné vývojáře do svého týmu a sliboval jim, že nebudou prostě jen pracovat, ale stanou se součástí hnutí. Nyní něčím podobným Intel láká i širokou veřejnost, a to na "The Odyssey". 
Dnes, aktualita, Jan Vítek
InSight už zasílá pravidelné zprávy o počasí na Marsu InSight už zasílá pravidelné zprávy o počasí na Marsu
Přistávací modul InSight, který se vydal prozkoumat ze své stacionární pozice Mars, už poskytuje denní přehledy o počasí, a to pochopitelně týkající se Elysium Planitia, kde se nachází. Naposledy se teploty vyšplhaly na ještě snesitelných -13 °C.
Dnes, aktualita, Jan Vítek
Objevují se GeForce GTX 1660 Ti, první má Gainward Objevují se GeForce GTX 1660 Ti, první má Gainward
Tisková zpráva od firmy NVIDIA se v době psaní těchto řádků ještě neobjevila, ale to se jistě velice brzy změní, takže můžeme říci, že dnes na trh přichází karty GeForce GTX 1660 Ti a nejvíce si pospíšil Gainward. 
Dnes, aktualita, Jan Vítek
Radeon RX Vega 56 v zahraničí zlevňují, prý v očekávání GTX 1660 Ti Radeon RX Vega 56 v zahraničí zlevňují, prý v očekávání GTX 1660 Ti
Ceny grafických karet Radeon RX Vega 56 začaly v evropských obchodech klesat, za čímž mají stát AIB partneři firmy AMD a očekávaný nástup grafické karty NVIDIA GeForce GTX 1660 Ti. Tu očekáváme už dnes.
Dnes, aktualita, Jan Vítek2 komentáře