Quake II RTX: ray tracingová laboratoř

Quake II RTX: ray tracingová laboratoř
, , recenze
Dnes se podíváme i z praktického hlediska na téma ray tracingu ve hře Quake II. Ta má svou éru již dávno za sebou, ovšem právě kvůli její celkové nenáročnosti se mohli vývojáři slušně rozšoupnout s implementací ray tracingu.
K oblíbeným
reklama
Path tracing, neboli "ray tracing na steroidech", jsme zmínili už v souvislosti s Minecraftem, který se díky tomuto vykreslování dokáže změnit k nepoznání. To je ostatně i nejlepší příklad toho, co ray tracing obecně dokáže a logicky je to nejlépe vidět na hře s velice jednoduchou grafikou, zatímco v AAA hře využívající nejnovější techniky rasterizačních enginů kolikrát můžeme jen těžko postřehnout rozdíly.
 
 

Path tracing v Quake II RTX

 
My se nyní podíváme na přehled toho, jak byl do Quake II implementován path tracing, k čemuž tu máme od NVIDIE jednoduchý obrázek znázorňující cestu pomyslného světelného paprsku od oka pozorovatele.
 
Pokud by se scéna vykreslila pouze pomocí primárního paprsku (1), neviděli bychom nic, protože ten nedoputoval ke zdroji světla. Když by se ale zvedl celkový jas scény, čili přidala intenzita pro ambientní osvětlení, už bychom scénu viděli, ale pouze tak, že veškeré povrchy by byly osvětleny zcela stejně, neexistovalo by tu stínování ani stíny samotné. 
 
 
Primární paprsek nám ale dospěje k povrchu objektu, který světlo jednak zčásti láme a zčásti odráží, což může být třeba vodní hladina nebo sklo. Probíhá tu tak odraz světla / reflexe (2A) a lom světla / refrakce (2B). 
 
Dále už sledujeme odražený paprsek, který doputuje k objektu a od něj pokračuje k jednomu náhodně vybranému lokálnímu zdroji světla (3), což by v reálném světe byla třeba žárovka v místnosti. Počítat se ale může také se sluncem jako hlavním zdrojem světla (4), díky čemuž ostatně mohou být vykreslované scény tak věrné. Tím to ovšem v rámci path tracingu v Quake II RTX nekončí, zde se počítá také s nepřímým osvětlením (5), neboť i v reálném světě i nezrcadlové objekty pochopitelně světlo odrážejí, protože kdyby ne, jevily by se nám jako zcela černé a beztvaré.
 
Nepřímé světlo z dalšího náhodně vybraného lokálního zdroje (6) pak ovlivňuje výsledný odstín vykreslovaného předmětu, ale pochopitelně ne tak, jako ho přímou cestou ovlivňují zdroje světla. Přesto ale zdaleka nejde o zanedbatelný vliv, a to zvláště pokud se počítá s nepřímým osvětlením světla přicházejícího od slunce (7). Rozdíl si můžeme snadno představit, ostatně každý ví, jak vypadá světlo v místnosti za slunného dne a jak vypadá, když je pod mrakem. I v Quake II tak dostala místnost výrazný žlutý nádech. 
 
srovnání scény bez nepřímého slunečního osvětlení (vlevo) a s ním (vpravo)
 
Sledování paprsků odraženého světla pak může být teoreticky opakováno dle libosti a čím vícekrát to uděláme, tím věrnější výsledek dostaneme. Jenomže to je pochopitelně i náročnější na výpočetní výkon, takže je důležité najít rovnováhu. Quake II RTX vysílá na pixel jednotky až maximálně desítky paprsků, což ovšem samo o sobě nestačí na to, aby byl vytvořen kvalitní obraz. Ve výsledku tu máme šumem silně poznamenanou scénu, která vyžaduje tzv. denoising, čili prostě odstranění šumu, neboť jinak bychom z výsledku ray tracingu moc spokojeni nebyli. 
 
scéna před odstraněním šumu 
 
Kdo by si však myslel, že k tomuto účelu se běžně využívají jádra Tensor, ten bude na omylu, neboť ve skutečnosti jde o práci spíše pro klasické shadery pomocí spacial a temporal filtering, čili Tensor se zapojí až v době, kdy ve hře zapneme DLSS. 
 
Ukazuje na to i následující rozklad zapojení hardwaru v GeForce RTX při renderování jednoho snímku v Metro Exodus. Jeho vyhlazení nastoupí ihned poté, co svou práci dokončí jádra RT, zatímco Tensor se v případě využití DLSS zapojí až na konci. 
 
 
Nicméně NVIDIA přesto nabízí možnost odstranění šumu pomocí trénované umělé inteligence a jader Tensor, a to v rámci svého API OptiX. 
 
 
My se ale v tomto článku věnujeme především hře Quake II, takže jak je to v jejím případě? Nejdříve se můžeme podívat na srovnání toho, jak dlouho trvá vykreslit jeden snímek s využitím ray tracingu, a to nejdříve na GTX 1080 Ti generace Pascal, pak na RTX 2080 bez jader RT a nakonec na stejné kartě s jádry RT. 
 
 
I bez jader RT je RTX 2080, kterou by šlo jinak srovnat s výkonem GTX 1080 Ti, výrazně rychlejší než Pascal, a to díky svým jádrům INT32, která předchozí generace postrádá, stejně jako nemá samotná RT a Tensor. Využití RT jader pak dokáže celkový čas vykreslení snímku srazit ještě na třetinu, ovšem co RTX 2080 během toho konkrétně dělá? 
 
 
Po převodu geometrických dat do podoby vhodné pro zpracování pomocí ray tracingu následují 4 úlohy sledující postup popsaný výše. Jde tak postupně o primární paprsky, odrazy, lomy a přímé osvětlení a následně o nepřímé osvětlení s jedním a dvěma odrazy. Jasně je vidět také náročnost jednotlivých částí úloh pro RT jádra.

A pak právě nastupuje odstranění šumu a zde je také patrné, že se jádra Tensor do těchto úloh nezapojují a jde o temporal a spatial denoiser. Nakonec nastoupí postprocessing výsledného obrazu, pod což se obvykle skrývají efekty jako DoF (hloubka ostrosti), Motion Blur (rozmazání pohybem) a jiné.  

reklama
Nejnovější články
Konečně jsou venku benchmarky mobilního CPU AMD Ryzen 7 4800H Konečně jsou venku benchmarky mobilního CPU AMD Ryzen 7 4800H
Poslední dobou uniklo mnoho benchmarků mobilních procesorů Intel, které by měly bojovat proti připravovanému Ryzenu 7 4800H, ale pořád jsme neměli výsledky tohoto procesoru od AMD. To se nyní mění a máme čísla z Geekbench 4 i 5.
Dnes, aktualita, Milan Šurkala1 komentář
NASA otestovala motor pro příští měsíční mise NASA otestovala motor pro příští měsíční mise
Pokud se chce NASA v dohledné době vrátit na Měsíc, měla by se na to už zcela vážně připravovat. My se nyní přitom můžeme podívat na test jednoho z raketových motorů, který se má v misích Artemis uplatnit. 
Včera, aktualita, Jan Vítek4 komentáře
Steven Seagal dostal pokutu 314.000 USD za propagaci podvodné kryptoměny Steven Seagal dostal pokutu 314.000 USD za propagaci podvodné kryptoměny
Herec Steven Seagal bude muset zaplatit pokutu 314 tisíc dolarů za matoucí propagaci kryptoměny Bitcoiin2Gen. Stal se její tváří v roce 2018 a jen o chvíli později byla shledána jako podvod s pyramidovým schématem.
Včera, aktualita, Milan Šurkala3 komentáře
Intel testuje Command Centre a jeho funkci pro vysílání streamů Intel testuje Command Centre a jeho funkci pro vysílání streamů
Intel by měl pomalu postupovat k vydání svých prvních samostatných grafických karet po modelu 740 a k tomu bude potřebovat i příslušnou softwarovou výbavu. Nyní je tu jako novinka pro Command Centre také funkce pro streamování. 
Včera, aktualita, Jan Vítek2 komentáře
Core i9-9900KS nejspíše končí v očekávání brzkého nástupu 10. generace Core i9-9900KS nejspíše končí v očekávání brzkého nástupu 10. generace
Core i9-9900KS byl uveden na trh loni na podzim jako pokus Intelu ještě jednou využít svou výhodu ve schopnosti 14nm procesu dosáhnout vyšších taktů. Tento procesor tak nabídl ty nejvyšší, jakých byl Intel schopen. 
Včera, aktualita, Jan Vítek6 komentářů