www.svethardware.cz
>
>

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

Grafické enginy her a reálný svět
, , článek
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.
K oblíbeným
reklama

Softwarové rendery (architektonické apod.)


Na rozdíl od herních enginů jsou softwarové rendery koncipovány zcela odlišným způsobem. U her se používá dost výrazných berliček a zkratek, kdežto klasický softwarový render (dnes už možnost urychlení pomocí GPU) se snaží být co nejvíce fyzikálně korektní. Snaží se přiblížit emisi fotonů z různých zdrojů světla a jejich odrazů od objektů ve scéně. Naopak hry obvykle používají pouze přímé osvětlení a pro navození realističnosti pouze přidávají Ambient Occlusion. Jak tedy tyto běžné rendery pracují?


Fáze první

Emise "fotonů" (neboli paprsků) ze zdrojů světla. Těchto paprsků je obvykle vysíláno několik miliónů, paprsky se odrážejí od objektů, získávají různou barvu a postupně jsou pohlcovány v závislosti na objektu (na který dopadnou) a počtu odrazů. Takovýto výpočet se běžně nazývá Ray Tracing (RT). Tradiční RT však počítá s velmi malým paprskem, který když dopadne, vytvoří obvykle bod o velikosti jednoho pixelu. Architektonické rendery však nevytvoří místo o velikosti jednoho pixelu, ale řádově výrazně větší. Tím si ušetří práci a distribuci světla ve scéně provedly za co nejkratší čas. Paprsky se různě mezi sebou překrývají a následně interpolují. Díky tomu vzniká velmi měkký dojem ze scény.




- princip LightTrace -


Tato metoda se zpravidla nazývá LightTrace, či jednoduše GI (GI je sice obecný název, ale řada renderů je používá právě pro tento princip).

Z tohoto principu však jasně vyplývá, že nelze vypočítat osvětlení pro malé detaily (obvykle různé spáry apod.). Paprsky by musely být výrazně menší a muselo by jich být také mnohonásobně víc. Výpočet je velmi náročný, a tak si to moc dnešní počítače nemohou dovolit. Proto nastupuje druhá fáze.


Fáze druhá

Druhá fáze přistupuje k osvětlení výrazně odlišným způsobem. Paprsky nejsou vysílány ze zdroje světla, ale z kamery. Tím se jejich počet výrazně eliminuje a doba výpočtu závisí hlavně na požadovaném rozlišení a složitosti scény. Popišme si cestu jednoho paprsku vyslaného z kamery. Tento paprsek se při kolizi s nějakým objektem rozpadne na určitý počet dalších paprsků (obvykle do 100). Tyto paprsky putují následně scénou a mají velmi omezený počet odrazů (třeba pouze jeden nebo vůbec žádný). Tyto paprsky nejsou schopny zohlednit celou scénu (respektují aktuální pohled kamery) a všechny zdroje světla. Starají se pouze o dokreslení detailů a jemných stínů. Teorie je sice výrazně složitější, ale podrobně se jí věnovat není záměrem tohoto článku.




- druhá fáze osvětlení -


Tyto metody se obvykle nazývají Final Gather, IrradianceMap apod.

Po těchto dvou základních fází často nastupuje fáze Ambient Occlusion (ta však není "povinná"), kterou už znáte z herních enginů. Všechny tyto fáze se složí do jedné výsledné a proběhne finální výpočet obrázku s Antialiasingem, měkkými stíny atd. Zde čtenář "Keymaster" poznamenal, že efekt AO se aplikuje ještě před celým výpočtem GI. To je pravda jen z části. Záleží totiž na použití a požadovaném efektu AO. Někdy se totiž AO používá ve smyslu "dirt" a v tomto případě je třeba aplikovat na začátku. V praxi se však používá AO (opravdu AO a ne dirt) až na konci.


Efekty Motion Blur a Depth Of Field

Tyto efekty se v architektonických renderech obvykle počítají opět pomocí RT a tím dochází k dalšímu zpomalení výpočtu. U rozmazání pohybu je třeba navíc počítat se sub-framy. U lineárního pohybu to není tak důležité, ale u rotačního je třeba spočítat i několik sub-framů, aby byl efekt rozmazání pohybu korektní. Pokud se totiž např. točí vrtule helikoptéry a v jednom snímku má rotaci 0 stupňů a v druhém např. 120 stupňů, efekt rozmazání pohybu bez sub-framů by jí interpoloval, jako lineární pohyb. Musejí se tedy dopočítat sub-framy. Více na následujícím obrázku.




- Motion Blur bez a s výpočtem sub-framů -


Efektu DOF jsme si již věnovali v předchozích kapitolách, a tak to už není třeba opakovat.


Fyzikální rendery

Dalším odvětvím jsou striktně fyzikálně založené rendery, jako je Maxwell, Octane, FryRender (znáte např. z testů FryBench), Arion Render (FryRender pro GPU+CPU). Tyto rendery využívají vlnovou povahu světla, pracují velmi dobře např. s disperzí, kaustikou a podávají opravdu realitě podobné výsledky. Pokud máte kvalitní textury a dobrý model, tak prakticky nepoznáte render od fotografie. Vycvičené oko to s pomocí Photoshopu samozřejmě může dokázat, ale na první pohled je to dost složité.

Je tedy vidět, že výpočet v běžných softwarových renderech je výrazně složitější než u herních enginů. A to jsme zde pouze nakousli technologii a neřekli si nic např. o IradianceParticles atd. Také je třeba si uvědomit, že veškeré odlesky a prostupy světla jsou počítány pomocí RT. V těchto renderech se to tedy paprsky jen hemží a jsou naprosto odlišné od herních, které využívají metodu RT ve velmi omezené míře, pokud vůbec.

Pro porovnání rychlosti: Výpočet jednoho snímku do produkční kvality v rozlišení např. 1920x1200 může trvat na 8vláknovém PC i 1 hodinu. Na GPU se tento čas zkrátí na cca 15 min. To je tedy 0,001 FPS, což nestačí ani na tahovou strategii :-).


Technologie používané ve filmech


A protože si rozebíráme grafické enginy her a porovnáváme s reálným světem, tak je třeba se zaměřit i na další oblast. Tím jsou rendery pro filmařský průmysl. Zde se z 99 % používá slavný Pixar RenderMan. Tento render se daleko více podobá herním enginům. Používá různé zkratky, urychlení a kombinuje výpočet pomocí GPU a CPU pro odlišné efekty. Např. pomocí GPU se spočítají vlasy, chlupy a částicové systémy. Naopak pomocí CPU proběhne výpočet osvětlení a finální kompozice snímku.





Architektonické rendery jsou co nejblíže reálnému světu a pro výpočet scény jsou založeny z 90 % na výpočtu osvětlení a z 10 % na zbytkových výpočtech. Naopak filmové rendery využívají jen 10 % síly na výpočet osvětlení a zbytek na efekty a finální kompozici. Obvykle si vystačí s jednoduchým hybridem mezi Ambient Occlusion a Final Gather. Zbytek scény je osvětlen pomocí přímého zdroje světla a simulován různými efekty.

Např. rendering kůže je v architektonických renderech počítán pomocí RT v podání pravého SubSurfaceScattering (SSS). Naopak ve filmovém renderu je objekt jednoduše zvoxelován (objem je vyplněn voxely - body s určitou velikostí). Na tomto voxelovém modelu můžeme jednoduše spočítat, kolik bodů je za sebou při pohledu z kamery a tím určit konkrétní průsvitnost resp. efekt SSS. Výpočet SSS trvá tedy jen zlomek času než architektonickým renderům. Sice není zcela přesný, ale toho si nikdo ve filmech nevšimne. Hlavně že je dostatečně "měkký".

Obecně je voxelizace ve filmařských renderech (konkrétně RenderMan) používána v hojné míře. I pro výpočet osvětlení se obvykle použije voxelový model, který je pro počítač velmi nenáročný na paměť (vzpomínáte si např. na hru Terra Nova, která běžela na 486, či první díl Comanche, který poskytoval překrásný terén a běhal i na málo výkonných strojích?). Díky voxelům se mohou na objektech počítat pěkně měkké okraje či kůrky u pečiva.

Pokud není využito voxelů, využívá se např. tzv. Vertex Weight. Každý vertex modelu má přiřazenou určitou váhu a podle této hodnoty se může zabarvit difuzní barva, změnit reflexe atd. Zde si pouze musí grafik pohrát s malováním těchto hodnot na objekt (skutečně se používají štětce a přítlak tabletu).




- kreslení hodnot na vertexy v programu Maya -




- výsledný render -


Všimněte si světlejších okrajů steaku, které jsou dány právě hodnotou Vertex Weight.

Používají se také volumetrické 3D textury, ale opět s určitým omezením. Na následujícím obrázku je ukázána textura pro rendering pečiva v Ratatouille.




- volumetrická textura pro pečivo -


Všimněte si, že ona volumetrická textura na krychli sice vytváří dojem porézního materiálu, ale na svém okraji je to stále pořád striktně geometrická krychle. Díky tomu je výpočet opět urychlen a pro film se více než hodí.


Blury reflextion a refraction

Zde narážíme opět na rozdíl mezi fyzikou, architektonickým a filmovým renderem. U architektonických renderů podobajícím se fyzikálnímu chování se měkké odrazy a průsvity počítají rozpadem RT paprsku na několik desítek či stovek dalších. Naopak u filmového renderu či herního enginu se používají jednoduché shadery, která aplikují např. gaussovské rozmazání na průsvit či odraz. Tím je výpočtu velmi ulehčeno, ale opět se nepodobá realitě. Mléčné sklo totiž pro oko rozmaže jinak objekt, který je za ním v blízké vzdálenosti a jinak objekt, který je mnohem dále. Postava jdoucí k takovémuto sklu by zpočátku nebyla vůbec zřetelná, postupně by se její kontury rozjasňovaly a až by byla v nulové vzdálenosti od skla, byla by zcela ostrá. To bohužel neplatí u zjednodušených herních a filmových renderů.




- rozmazání pomocí jednoduchého shaderu ve filmu Wall-E -


Na předchozím obrázku si také můžete všimnout výrazného použití Ambient Occlusion (spodní hrana skla či v pozadí trup lodi). A takto bychom mohli pokračovat dál a dál. Principů je obrovská spousta, ale zaměření našeho webu na hardware s tím až tolik nesouvisí, a tak si to necháme zase na příště.
reklama
Nejnovější články
Anthem se dostal do levné nabídky předplacené služby Origin Access Basic Anthem se dostal do levné nabídky předplacené služby Origin Access Basic
Titulu Anthem, který měl zachránit zbytek reputace studia Bioware, kdekdo ještě před vypuštěním na trh věštil neslavný konec. A ten nyní svým způsobem také přišel a zaslouženě dle toho, jaký zájem a ohlas hra vyvolala.
Dnes, aktualita, Jan Vítek
Aktualizované Windows 10 mají problémy se zvukem, jak je vyřešit? Aktualizované Windows 10 mají problémy se zvukem, jak je vyřešit?
O uběhlém víkendu se řešily problémy Windows 10 s nejnovějšími záplatami, které mnohým uživatelům rozvrtaly zvuk v systému. A jako obvykle se tyto potíže lišily případ od případu, ovšem týkají se konkrétní aktualizace: KB4515384.
Dnes, aktualita, Jan Vítek2 komentáře
Výkon karet v Borderlands 3 prozkoumán, jaké jsou nároky? Výkon karet v Borderlands 3 prozkoumán, jaké jsou nároky?
Nový titul Borderlands 3 bude asi ještě nějakou dobu probírán kvůli přístupu vydavatele k recenzentům i kvůli chybám, s nimiž se hráči od minulého pátku potýkají. My se nyní můžeme podívat alespoň na to, jak si vedou grafické karty.
Dnes, aktualita, Jan Vítek2 komentáře
Stíny nad Borderlands 3: problémy napříč platformami a kontroverzní přístup 2K Games Stíny nad Borderlands 3: problémy napříč platformami a kontroverzní přístup 2K Games
Titul Borderlands 3 si už můžeme od konce minulého týdne vesele hrát, ovšem kromě toho, jak dobrá je samotná hra se probírají i její problémy s výkonem napříč platformami a bohužel i velice kontroverzní přístup 2K Games k recenzentům.
Dnes, aktualita, Jan Vítek3 komentáře
Přichází PC VR headset HTC Vive Cosmos, co nabídne a kdy bude? Přichází PC VR headset HTC Vive Cosmos, co nabídne a kdy bude?
PC systémy virtuální reality tvoří stále spíše jen okrajový trh a zatím nic nenapovídá tomu, že by se to mohlo brzy zlepšit. Tuto oblast je však zajímavé přinejmenším sledovat, respektive její vývoj a ten zajistí i nový HTC Vive Cosmos.
Včera, aktualita, Jan Vítek4 komentáře