PCTuning Článek

Quake II RTX: jak funguje ray tracing na GeForce RTX

Adam Vágner
Adam Vágner
28. 6. 2019 03:00 50 Sdílej:

Seznam kapitol

1. Ray tracing jako nikdy dříve 2. Quake II a (testované) mody 3. Je to dostatečně jasné? 4. Srovnání modů – použité nastavení 5. Srovnání modů ve dvou scénách 6. Dejte si pauzu (pro maximální kvalitu ray tracingu)
7. Úhel pohledu 8. Co a jak se renderuje 9. Jak to zprovoznit, konzole a cheaty 10. Sky Type 11. Nastavení grafiky

Nvidia před nedávnem vydala vlastní modifikaci letitého Quake II s podporou technologie RTX. Původní renderer nahradila vlastním, který obraz vykresluje s pomocí ray tracingu. A jde zatím o nejkomplexnější implementaci této technologie, na níž lze demonstrovat, co bude ray tracing znamenat pro kvalitu obrazu.

Reklama
Reklama

Pokud jste viděli úvodní video s „nalejvárnou“ od Nvidie a rozuměli jste mu, můžete tuto kapitolku přeskočit, bude to jeho prosté převyprávění.

Na úvodním snímku je schéma path traceru implementovaného do Quake II RTX.

Začneme z kamery (či chcete-li z oka), ze kterého do scény vyšleme primární paprsek.

Render, který má údaje o scéně jen z tohoto primárního paprsku (s jednoduchým ambientním světlem, bez kterého by scéna byla černá), vypadá nějak takto:

Když se primární paprsek setká s povrchem, tak se od něj odráží nebo láme (anebo obojí). Ve scéně se potká s tvarovaným sklem, které je částečně propustné a částečně odráží obraz.

Na snímku se pak objeví odraz zadní stěny místnosti za kamerou (reflection), který se navíc láme na tvarovaném sklu.

Renderer posílá z místa prvního odrazu paprsky náhodnými směry, kde narazí buď na různá místní světla, anebo na stín.

Podle toho získá barvu a intenzitu nasvícení. A už tady vidíte, že scéna získala plastičtější podobu a přibylo nejen světlo, ale vystoupily v ní i stíny – třeba za sudem.

V dalším kroku se přidá světlo od slunce – engine posílá paprsek a opět zkoumá, jestli narazí na světlo od slunce, nebo na stín.

A takto to vypadá, když se ve scéně objeví místa nasvícená přímým slunečním světlem.

Dalším příspěvkem do nasvícení scény je nepřímé osvětlení. Ke světlům se v pátém kroku přidává i osvětlení scény světlem odraženým od okolních povrchů (5).

I z „přisvětlovacích“ povrchů se posléze opět posílá paprsek ke blízkým zdrojům světla ve scéně.

Díky tomu daný bod naakumuluje světlo ze scény, takže celá scéna opět o něco zesvětlí (a opět je o něco plastičtější.

A k tomu se opět přidá sluneční světlo. Z přisvětlovacího povrchu pošle engine paprsky vedle místních světel i do slunce.

Na scénu to má mnohem výraznější dopad než lokální světla, získá tím opět větší plasticitu a výraznější dojem nasvícení pomocí „globálního osvětlení“).

A lze jít i dál a přidávat osvětlení od ploch nasvícených světlem od jiných ploch nasvícených zase jinými plochami a světly, téměř donekonečna. Záleží jen na tom, do jaké míry preferujete vyšší kvalitu obrazu než vyšší výkon.

V posledním kroku je zapotřebí z obrazu odfiltrovat šum.

Pro rendering v reálném čase engine používá jen „pár“ paprsků na pixel. Denoiser potom vezme obraz s poměrně nízkým vzorkováním a snaží se z něj rekonstruovat plnohodnotný obraz. Využívá pro to kombinaci odšumování statického obrazu a kombinaci více po sobě jdoucích snímků. Protože je obraz generovaný náhodně, šum na dvou po sobě jdoucích snímcích se liší a jejich kombinací získáme vyšší počet vzorků. Je to běžná technika využívaná i při odstranění šumu z videa, nevýhodou je, že mírně rozmazává obraz a při rychlejších pohybech kontrastních objektů se v obraze mohou dělat artefakty, obvykle ve formě duchů.

Na dalším obrázku je porovnání trvání renderingu jednoho snímku v závislosti na využití nových optimalizací pro rychlejší rendering a ray tracing u karet s architekturou Turing. Na prvním grafu je renderning na GTX 1080 Ti s architekturou Pascal, kde se počítá jen na klasických FP32 Cores.

Na druhém snímku je už RTX 2080, kde je část zátěže rozložená na FP32 a část na INT32 cores a výkon je zhruba poloviční. A když s výpočty pomohou i RT Cores, tak se klíčová část výpočtu smrskne ještě asi čtyřikrát.

Další snímek ukazuje Q2 RTX, kolik času zabírá která část pipeline. V první části (Geometry VH) se připravuje scéna do podoby vhodné pro ray tracing. Následují výpočty odrazů, lomu světla a přímého osvětlení. Nejvíc, asi třetinu času, zabírá výpočet nepřímého osvětlení (indirect lighting), které ale obrazu přidává na věrnosti nejvíc (a obdobné je to s náročností nepřímého osvětlení i při klasickém renderingu). Na závěrečných výpočtech už se RT Cores nepodílejí a tak je stejně náročný jak s nimi, tak bez nich – jde o odšumování a post processing.

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