Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě
Hardware Článek Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě

Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě

Adam Vágner

Adam Vágner

16. 12. 2021 15:00 32

Seznam kapitol

1. DLSS druhé generace 2. DLSS v pohybu 3. Icarus, Nvidia DLSS a RTXGI 4. RTX Global Illumination
5. Co vám nesmí uniknout 6. DLSS a kvalita obrazu 7. DLSS Sharpness 8. Závěr

Nvidia minulý měsíc uvedla DLSS v nové verzi 2.3 , u které zapracovala na jednom z největších zbývajících neduhů předchozích variant DLSS 2.x – omezuje duchy, neboli ghosting u rychle se pohybujících objektů.

Reklama
Reklama

Před třemi lety představila Nvidia technologii DLSS, u níž využívá specializované výpočetní jednotky pro akceleraci výpočtů využívajících neuronové sítě, které označuje jako „tensor cores“. Ty jsou součástí posledních dvou generací desktopových i mobilních GeForce RTX. Ty grafické karty už dnes samostatně zase jen tak neseženete, ale stále zbývá možnost pořídit ji coby součást počítačové sestavy nebo notebooku na ALZA.CZ.

Podíváme se, jak vypadá poslední vylepšení technologie DLSS na čerstvě uvedené hře Icarus. V ní je kromě DLSS implementovaná i další technologie Nvidie, která využívá další novinku karet nové generace s podporou DX12 Ultimate – akceleraci ray tracingu. Icarus podporuje konkrétně RTXGI pro efektivnější výpočty global illumination – globálního osvětlení, které věrněji simuluje reálné šíření světla ve scéně.

Kolem DLSS od Nvidie za nedlouhou dobu jeho existence panuje řada omylů a mýtů, takže se nic nestane, když k nim přidáme další! Ale vážně, svůj díl na tom má i Nvidia, která při vysvětlování DLSS nezabíhá příliš do detailů. Ono to ani dost dobře nejde, i pro lidi, co opravdu rozumí počítačové grafice, je fungování DLSS minimálně na pár několikahodinových přednášek. Pro veřejnost se pak celá problematika přetaví do jednoduchých obrázků, což je ošidné, a s tím, jak se technologie vyvíjí, se i tyto nepřesnosti hrnou dál. 

A to se táhne i s DLSS, které v první verzi čerstvě po uvedení fungovalo jinak než dnes. Všichni známe jednoduché schéma, kdy se neuronové síti, která je vytrénovaná na hezkých obrázcích, podstrčí ošklivý obrázek, který chytře vylepší tak, aby byl taky pěkný.

DLSS z prezentace při uvedení GeForce RTX 2000
DLSS z prezentace při uvedení GeForce RTX 2000

Nějak tak fungovala první generace DLSS, a od té doby se traduje, že DLSS vyrenderuje snímek v nízkém rozlišení, a natrénovaná neuronová síť tam přidá detaily, které v něm nejsou, protože se naučila, jak má vypadat obrázek ve vysokém rozlišení. Svůj podíl na tom má i fakt, že podobně fungují neuronové sítě používané pro zvětšování obrázků.

DLSS 1.0 skutečně dostávalo data pouze z jediného snímku s nízkým počtem vzorků, takže muselo zvětšit obraz s nízkým rozlišením (resp. počtem vzorků) a vylepšovat detaily tam, kde chyběly. A od té doby je DLSS považováno za technologií, která „zvětší malý snímek a domyslí tam detaily“.

Jeden snímek nestačí!

Podobné látání obrazu ale může fungovat jenom u pravidelných vzorů. Pokud jde třeba o text, sebevytrénovanější umělá inteligence nebo algoritmus nemůže vědět, jestli má na místo zeleného čtverečku doplnit nulu, devítku, nebo písmeno B. Tak to celé nějak zvětší, mezery pospojuje, doostří, a výsledkem je místo textu… nějaký flek.

Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě

Na tom pohořelo i rané DLSS ve verzi 1.0. Ve hrách ale nerenderujeme jeden snímek, ale desítky a stovky snímků za sekundu.

Desítky snímků za sekundu, ze kterých lze brát

Možností získat informace z více snímků využívá druhá generace DLSS. Část obrazu si algoritmus vezme z nového snímku, a část obrazu ze snímků předchozích. Pokud některý detail v aktuálním snímku chybí, doplní ho DLSS z předchozích snímků. 

Se skládáním snímků přišla Nvidia u DLSS 2.0. Po ní algoritmus ještě vylepšila ve verzi 2.2.1 o možnost nastavení intenzity doostřování obrazu nedávno představila další větší verzi 2.3, která odstraňuje z obrazu některé artefakty.

DLSS 2.3 bylo už při uvedení před měsícem podporováno v 16 nových i starších titulech, od té doby přibyly další včetně survivalu Icarus, na který se podíváme dále.

  • Baldur’s Gate 3
  • Bright Memory: Infinite
  • Crysis 2 Remastered
  • Crysis 3 Remastered
  • Cyberpunk 2077
  • Deathloop
  • DOOM Eternal
  • Grand Theft Auto III - Definitive Edition
  • Grand Theft Auto: San Andreas - Definitive Edition
  • Grand Theft Auto: Vice City - Definitive Edition
  • Jurassic World Evolution 2
  • Marvel's Guardians of the Galaxy
  • Rise of the Tomb Raider
  • Shadow of the Tomb Raider
  • Sword & Fairy 7

Na stránkách Nvidie najdete měsíčně aktualizovaný seznam her a aplikací, které podporují DLSS a ray tracing. K osmému prosinci 2021, celkem je jich už více než 130 a díky implementaci do herních enginů jako Unreal Engine nebo Unity přibývají rychlým tempem.

Jak funguje DLSS 2.x

Při uvedení DLSS 2.0 jej Nvidia představovala mimo jiné i tímto snímkem:

Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě

Schéma je opět trochu nešťastně zjednodušené. Vypadá to podle něj, že neuronová síť jenom z obrázku v nízkém rozlišení (a případně pohybových vektorů) domýšlí detaily pro vysoké rozlišení a až někde vzadu vidíte, že to starší snímky prokládá s novým snímkem.

Při představení poslední verze DLSS 2.3 šla Nvidia v prezentaci zatím asi nejvíce do hloubky. 

Jak pracuje DLSS 2.x
Jak pracuje DLSS 2.x

Na prvním obrázku vlevo nahoře jsou barevně odlišené tečky – každá barva reprezentuje vzorek nabraný při vykreslování jiného snímku. Když se tečka trefí na bílou, považuje pixel za bílý, když na černou, za černý. 

dlss-sampling
dlss-sampling

U pixelů, které jsou linkou překryté jen částečně, se stává, že se vzorek někdy trefí do bílé čáry a jindy ne. Kdyby rendering využíval jen jeden snímek, viděl by to dost černobíle, ale ze tří vzorků zapíchnutých do různého místa pixelu už ví, že nic tak černobílé není a že má pixel, ve kterém se vzorek trefil dvakrát do černé a jednou do bílé, zprůměrovat na tmavší odstín šedi.

Schéma pod ním doplňuje, že kromě informací o barvě získává algoritmu i informace o tom, co se na obrazu hýbá a kterým směrem – tedy že se čára pohybovala šikmo dolů. Obě informace se pak podstrčí neuronové síti… a ona z několika ošklivých obrázků poskládá obraz, který chytře vylepší tak, aby byl taky pěkný.

Pohybové vektory
Pohybové vektory

Jen to složit dohromady

Do nějakého hlubšího rozboru se Nvidia stále nepouští, spíše naznačuje. Celé je to ve skutečnosti ještě komplikovanější. Obraz se sice vykresluje v nižším rozlišení, ale je poskládaný z více snímků. V každém snímku jsou vzorky umístěné vždy někde jinde, takže při každém snímku dostanete obraz, ve kterém je méně vzorků a nějaké informace chybí. 

Vzorkování funguje nejspíš podobně jako supersampling, jenom s tím rozdílem, že se z jednoho pixelu neberou čtyři vzorky v jednom snímku, ale čtyři vzorky ve čtyřech snímcích. 

Pro hrubou představu – dostanete čtyři mírně odlišné obrázky, v každém nějaká část informace chybí, ale když je poskládáte přes sebe, dostanete celkem průměrný výsledek.

Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě

Po „zprůměrování“ čtyř snímků se čtvrtinou vzorků dostanete téměř totéž jako u jednoho snímku se čtyřmi vzorky na pixel.

Nebo si to možná můžete představit nějak takto, i když i to je značně zkreslené – máte řadu snímků, ve kterých je počet vzorků prořídlý jako chrup hokejisty po drsném zápase, ale když je spojíte, dostanete obraz velmi blízký tomu originálu úplně vpravo.

Icarus: Nvidia DLSS 2.3 a RTXGI v plné parádě

Když se několik takových neúplných snímků poskládá přes sebe a prožene se to filtrem s AI, který vyčistí poslední nedokonalosti, výsledkem je obraz, který je kvalitnější než jednoduché zvětšení z nízkého rozlišení a příliš se neliší od plné kvality. 

Věci, které nevymyslíte

Těch snímků, ze kterých DLSS vychází, je ve skutečnosti mnohem více. A dalších informací od hry, které neuronové síti pomohou, je také víc – nemusí to být jen pohybové vektory, DLSS může ještě využít data o expozici scény, mapu s hloubkou objektů ve scéně a podobně. 

Ale ještě tu další problém – hry využívají při různých rozlišeních různou úroveň optimalizace scény, a tak i samotnou hru musíte při použití DLSS nejdříve přesvědčit, že renderuje ve vyšším rozlišení než ve skutečnosti.

Když chcete skládáním snímků získat výstup srovnatelný s nativním 4K, musíte používat stejné zdroje, které by hra použila i pro nativní 4K. Rendering třeba nesmí používat textury, které by stačily u rozlišení pro rozlišení 1920 × 1080 bodů. A totéž může platit i pro úroveň detailů (LOD) u objektů a podobně – věci, jež lze v rozlišení 1080p ze scény vypustit, protože by nebyly vidět, musí ve snímcích, ze kterých se bude skládat obraz pro vyšší rozlišení 4K, zůstat.

A právě proto musí DLSS pro dosažení vyšší kvality se hrou spolupracovat a musí být do ní přímo implementované. Nefunguje jako magie a nedokáže to, že vezme hotový snímek v nízkém rozlišení a „umělou inteligenci nechá domyslet to, co tam chybělo“.

A další problém nastává, když s obrazem mezi jednotlivými snímky pohnete… 

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama

Byl detekován AdBlock

Pctuning je komunitní web, jehož hlavním příjmem je reklama. Zvažte prosím vypnutí AdBlocku, ať můžeme všem čtenářům i nadále přinášet kvalitní herní zpravodajství, články a videa.

Děkujeme!

Váš tým Pctuning