Hlavní stránka Hardware Grafické karty Quake II RTX: jak funguje ray tracing na GeForce RTX
Quake II RTX: jak funguje ray tracing na GeForce RTX
autor: Adam Vágner , publikováno 28.6.2019
Quake II RTX: jak funguje ray tracing na GeForce RTX

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.


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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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

Quake II RTX: jak funguje ray tracing na GeForce RTXQuake II RTX: jak funguje ray tracing na GeForce RTX

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:

Quake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTXQuake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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

Quake II RTX: jak funguje ray tracing na GeForce RTXQuake II RTX: jak funguje ray tracing na GeForce RTX

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).

Quake II RTX: jak funguje ray tracing na GeForce RTX

Quake II RTX: jak funguje ray tracing na GeForce RTXQuake II RTX: jak funguje ray tracing na GeForce RTX

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ě.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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ší.

Quake II RTX: jak funguje ray tracing na GeForce RTXQuake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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í“).

Quake II RTX: jak funguje ray tracing na GeForce RTXQuake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX

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.

Quake II RTX: jak funguje ray tracing na GeForce RTX



 
Komentáře naleznete na konci poslední kapitoly.
37 čtenářů navrhlo autorovi prémii: 14.5Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.