GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
Hardware Článek GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)

GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)

Adam Vágner

Adam Vágner

71

Seznam kapitol

1. Proč ray tracing 2. Nový čip, nová architektura, nové jednotky 3. GeForce RTX 4. Další info ke kartám 5. Praktické ukázky – „před“ a „po“ ve hrách 6. RTX v nových hrách

Nvidia včera večer představila novou generaci herních grafických karet s architekturou Turing. Začínají rovnou nejvyššími modely GeForce RTX 2080 Ti, RTX 2080 a RTX 2070. Novým buzzwordem (či spíše slovním spojením), o kterém teď budeme slýchat ještě častěji, je ray tracing. A nová generace karet má znamenat velkou revoluci ve světě her.

Reklama

Nvidia se včera věnovala v dlouhém streamu představení nové generace karet s architekturou Turing. Na místě máme i speciálního zpravodaje Vaška Vlčka (který je tam primárně kvůli jiné další prezentaci), ale zatím nám poslal aspoň pár fotek ze včerejší akce.

GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz

GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz
GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz

Přestože některé z podstatných vlastností, které by nás zajímaly (především výkon), Nvidia stále tají, informací bylo více než dost. Pokusil jsem se toho nahrnout do jednoho článku co nejvíc, ale nenajdete v něm zatím zdaleka vše, takže jej ještě budu doplňovat za pochodu.

Jen-Hsun Huang si na úvod do problematiky ray tracingu vybral pěkný obrázek a na něm celkem srozumitelně představil základní pojmy, takže vám prostě převyprávím, co v úvodu přednášky říkal. 

Obrázek níže je svatým grálem počítačové grafiky. Je plný efektů, kterých není možné stávajícími technologiemi (herního) renderingu – rasterizací – vytvořit. Už na začátku je to zdroj světla a samotné nasvícení scény, tedy „sluneční“ světlo procházející zvenčí oknem, které se odráží od nasvícených předmětů a většinu prostoru místnosti tak osvětluje až nepřímo. Kdykoliv světlo narazí na nějaký materiál, je tento materiál fyzicky nasimulovaný – ať už je kovový (tedy takový, který odráží obraz), dielektrický (to jsou materiály, které světlo tlumí a lámou), hladký, nebo naopak hrubý (hrubost je dána povrchovými nerovnostmi), světlo odráží, nebo jej absorbuje, rozptyluje různými způsoby – třeba v závislosti na orientaci (to jsou třeba materiály jako kartáčovaný hliník), anebo nezávisle na ní, některé jsou lesklé a některé matné. Výsledkem celé simulace je celá tato místnost, která vypadá jako živá.

GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz

Když se světlo v celé místnosti odráží, nechová se na každém povrchu stejně. Některý předmět je od světla odstíněný okolními předměty – tomu říkáme ambient occlusion. Také vidíte lampičku, která svítí na sklenice pod ní, a protože jejich sklo má zakřivený tvar, světlo se v něm láme a soustředí se do menší světlejší plochy – tomuto efektu se říká caustics – nejnázornějším příkladem z reálného života je, když se pokoušíte něco zapálit lupou anebo když jste u vody, na níž svítí slunce a někde na zdi či na dně se vlní soustředěné světlo od vln na vodní hladině.

Dále jsou ve scéně stíny vržené různými směry od různých zdrojů světla – každý stín se dělí na více částí, kterým se říká umbra (kde je zastínění plné) a penumbra (kde je částečné) – v češtině stín a polostín (vznikají, když nemáte bodový zdroj světla, ale předmět je osvětlený větší plochou nebo třeba dlouhou zářivkou – v praxi jsou to neostré stíny, v opravdu velkém měřítku je to třeba plné nebo částečné zatmění slunce, které už zažila většina z nás).

Dále odraz v zrcadle – a v něm se odrážejí i části, které nevidíte. Víte, jak zrcadla fungují, že se můžete dívat i „za zrcadlo“ (což ve videohrách často nelze, a protože se pro simulaci zrcadel využívají obvykle mapy vygenerované z renderované obrazovky, neodrážejí se v nich třeba předměty, které někde mimo scénu sice jsou, ale na obrazovce je nevidíte).

Dalším už zmíněným efektem je slabý stín kolem obrazu – ambient occlusion (pro něj je zatím asi nejlepší český překlad zastínění okolím), anebo to, jak světlo prochází gumovými medvídky – odráží se uvnitř želatiny, láme se a odráží zpátky ven – tomu se zase říká subsurface scattering (Ten už z her známe také – využívá se nejčastěji pro simulaci lidské pokožky, jde o takový částečně průsvitný voskový vzhled, díky němuž lidé ve hrách nevypadají jako figuríny napatlané lubrikačním gelem).

Všechny tyto efekty je s dosavadními technikami používanými ve hrách opravdu těžké nasimulovat, a s každým takovým efektem přilepeným do celé scény je komplikovanější příprava scény, rendering i samotné skládání jednotlivých efektů dohromady do výsledného obrazu.

V roce 1979 Turner Whitted, který momentálně pracuje coby vědecký pracovník v Nvidii, navrhl algoritmus vykreslování, který funguje jinak než rasterizace, je silný a přitom elegantní – nazval jej Multi-bounce recursive Ray Tracing.

GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz

Od ray tracingu, který funguje tak, že se u něj vysílají paprsky od zdroje světla, se liší v tom, že se nezačíná u zdroje světla, ale z pohledu oka pozorovatele – protože většina paprsků ze zdroje světla se k tomu oku nikdy nedostane, bylo by zbytečným plýtváním je vykreslovat. A postupuje se zpětně. Od oka procházejí paprsky každým pixelem na obrazovce, a každý paprsek ovlivňují předměty, se kterými se setkává.

Výkon stále nestačil

I když je tento způsob vykreslování zahájený z pohledu pozorovatele oproti opačnému postupu mnohem méně náročný, pro kompletní rendering místnosti by bylo zapotřebí počítat miliardy paprsků a byl by zapotřebí výkon v řádu petaFLOPS. Grafiky sice udělaly obrovský pokrok – v souladu s moorovým zákonem se u procesorů dařilo zvedat výkon asi desetinásobně každých pět let, každých deset let to dělalo stonásobný nárůst výkonu, a u grafických karet byl nárůst ještě desektrát vyšší – to dělá tisícinásobný nárůst každých deset let. Ale ani to nestačí k tomu, aby se v dohledné době mohl ve hrách využívat plnohodnotný ray tracing.

GeForce Turing: Co Nvidia předvedla na Gamescomu (a jinde)
i Zdroj: PCTuning.cz

K tomu, aby to bylo možné, bychom museli čekat dalších deset let na petaFLOPSové grafiky, a to už v Nvidii nechtěli. Se samotným ray tracingem by ale Nvidia nebyla schopná dosáhnout výsledku, jaký se jí s novými kartami podařil.

Nvidia RTX

Proto musela vzniknout platforma Nvidia RTX, která spojuje ray tracing, deep learning a rasterizaci kvůli tomu, aby od základu změnila proces tvorby pro tvůrce obsahu a vývojáře. (A tady pozor, podpora RTX ve hrách podle všeho znamená, že hra využívá i jen některé z těchto dílčích technologií, nemusí to být nutně zrovna ray tracing). A tím, co tuto přelomovou změnu poprvé umožní, má být nová architektura Turing.

Základní princip Nvidia RTX? Nejspíš obdobný jako na ukázkách, které Nvidia prezentovala třeba na loňském Siggraphu – Raytracing se počítá s nižším počtem paprsků a umělá inteligence natrénovaná na výkonnějších počítačích se pak v konečné fázi postará o inteligentní doplnění chybějících prvků obrazu:

Proč, když je to tak náročné?

Proč se do něčeho takového vůbec pouštět, když je to o tolik náročnější než klasická cesta? Kolem času 2:07:00 šéf Nvidie vysvětluje, že ačkoliv je ray tracing náročný, rasterizace je velmi efektivní jen při menším počtu světel, ale její efektivita klesá, když musíme světel přidat víc. A největší problémy nastávají při použití jiných než bodových zdrojů světla – například plošných světel, která jsou vlastně nekonečným množstvím bodových světel vedle sebe. Se stále většími nároky na realističtější nasvícení scény a s využitím global ilumination také neúměrně narůstá počet světel, rasterizace začíná být neefektivní a ray tracing začíná být naopak efektivnější.

Kvůli tomu Nvidia (a další) spolupracovali s Microsoftem v posledních letech na využití ray tracingu v rámci rozhraní DirectX – technologii DXR. A pracovali i na zahrnutí DXR do Unreal Engine. Výsledkem jejich snažení je ukázka, kterou jste (pokud se o herní grafiku trochu zajímáte) nejspíš asi už viděli, protože se s ní vývojáři pochlubili před několika měsíci:

V demu jsou vidět plošná světla, kolem kterých projíždí výtah, odrazy materiálů (a odrazy materiálů, ve kterých se odráží okolí) a neostré stíny. Dopracovat se k podobnému výsledku dá i stávajícími metodami, ale je to neefektivní, protože se vše pohybuje a všechny ty obezličky, jako jsou třeba mapy pro odrazy, je s každým pohybem nutné znovu přepočítat. Toto demo tehdy renderoval superpočítač se čtyřmi profi grafickými kartami Tesla V100 s cenovkou hezkých 68 tisíc dolarů...


Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama