Ray tracing – budoucnost počítačové grafiky?

Sledování paprsků (z anglického ray tracing) je metoda renderování (výpočtu a zobrazení) 3D počítačové grafiky; přesněji řečeno metoda globálního osvětlení. Na rozdíl od běžného života, kdy se paprsky pohybují od zdroje, odráží se a lámou, až se nakonec střetnou s okem pozorovatele, zde paprsky vycházejí z kamery.



 

Ray tracing – budoucnost grafiky?

Mimo nadšence do počítačové grafiky asi není mnoho lidí, kteří vědí, co pojem ray tracing znamená. Jeho výsledky však na vlastní oči viděl naprosto každý. Jedná se totiž o techniku, kterou jsou vytvářeny speciální efekty v moderních filmech, nebo rovnou celé animované filmy. V poslední době navíc začíná být spojován také s počítačovou grafikou.

Tato metoda tedy není žádnou novinkou, doposud však byla nasazována pouze tam, kde bylo možné na výsledný render čekat delší dobu, což je především doména statických obrázků nebo filmových efektů. Pro počítačovou grafiku je ale nutné, aby vše probíhalo v reálném čase. V předešlých letech nebylo vůbec možné uvažovat nad tím, že by obyčejný počítač byl schopen podobnou úlohu zvládnout. To se však v současnosti mění.

 

Jak ray tracing funguje?

Metoda vychází z pozorování lidským okem v běžném životě, kdy se paprsky pohybují od zdrojů světla, odráží se a lámou, až se nakonec střetnou s okem pozorovatele. Zde však paprsky vycházejí z kamery, jelikož ze zdrojů světla vychází nekonečné množství paprsků a nedalo by se s nimi v rozumném čase počítat. Po vyslání paprsku je sledována jeho dráha a interakce s objekty, které mají v této virtuální scéně figurovat. Každý paprsek je vždy otestován na vznik průniku s předmětem v dané scéně a v bodě tohoto průniku je určena úroveň osvětlení a vlastnosti objektu a poté konečně jeho výsledná barva. Pokud je daný objekt odrazivý nebo průsvitný, je k dosažení požadované efektu často třeba kombinovat data několika takovýchto paprsků.

 

Ray casting a rasterizace

Za předchůdce ray tracingu by se dal považovat ray casting. Funguje na stejném principu, ale na rozdíl od ray tracingu počítá s paprskem vyslaným z kamery pouze do doby, kdy vznikne průsečík mezi takto vyslaným paprskem a objektem. Poté spočítaná barva a informace o ní se vrací zpět. Tato metoda je výrazně rychlejší, ale neumožňuje další kouzla s obrazem jako refrakce, reflexe nebo přirozené stíny.

Pamětníci si jistě vzpomenou na starší hry jako Wolfenstein 3D, Comanche nebo Comanche 3. Právě tyto hry jsou prvním příkladem metody ray castingu a podotkněme, že se jedná o hry z počátku devadesátých let, takže tato technologie už je tu opravdu dlouhou dobu. Právě kvůli využití této techniky nebyly hry založené na Voxel Space enginu akcelerovatelné tehdejšími grafickými kartami 3dfx, ATi nebo nVidia.

 

 

Další hojně využívanou metodou u počítačových her je rasterizace. Rasterizace je oproti raytracingu opravdu rychlá a existuje spousta metod, jak tento typ renderování dále zefektivnit. Základem pro stavbu zobrazované scény nejsou paprsky, ale trojúhelníky, kde u každého z nich je možné určit pokrytí a následně i určit barvu každého jednotlivého viditelného pixelu. Současné grafické karty jsou postaveny tak, aby co nejefektivněji pracovaly právě při rasterizaci, kdy dokáží zároveň provést mnoho dalších kouzel pro rychlejší a efektivnější zpracování scény. Při tomto typu renderování je každý trojúhelník vykreslován vždy nezávisle. Ray tracing neustále využívá celou geometrii scény a je proto považován na rozdíl od rasterizace za globální rendering.

Reálný svět vs. ray tracing

V reálném světě je zdrojem světla většinou slunce nebo jiný zdroj „umělého“ světla a na povrch libovolného předmětu dopadá nespočet paprsků (můžeme o nich uvažovat jako o proudu fotonů směřujících do stejného bodu). V momentě, kdy se do cesty paprsku postaví nějaká překážka, je v závislosti na jejím povrchu část paprsků odražena, část projde a část je absorbována.

 

 

 

 

Ray tracing můžeme brát jako výrazně zjednodušený (a obrácený) model reálného fungování zobrazování v reálném světě. Pokud omezíme počet počítaných paprsků a počet dalších reflexí a refrakcí, vznikne nám ve své podstatě právě tato metoda. Pokud se podíváte třeba na obrázek obývacího pokoje výše, tak jsou velmi patrné výhody, které nám rasterizace jen těžko může nabídnout. Výsledné obrázky jsou téměř nerozeznatelné od fotografií.

Dále můžeme zmínit příklady použití ray tracingu ve filmu. Snad každý už viděl alespoň jeden film z produkce filmového studia Pixar. Jako příklady můžeme uvést filmy Toy Story, Hledá se Nemo nebo Auta. Pokud jako příklad vezmeme Toy Story z roku 1992, tak každý snímek trvalo vyrenderovat okolo dvou hodin. U filmu Auta, přestože je o více než 10 let mladší, to trvalo 15 hodin. To vše je způsobeno stále větší úrovní detailů, které chtějí tvůrci ve filmu ztrvárnit.


Nvidia a nové hry

Technologie ray tracing je hlavním lákadlem poslední generace herních grafických karet od Nvidie. Její využití podle zástupců společnosti Nvidia představuje největší skok ve vývoji grafických karet od roku 2006, kdy byly představeny první karty s CUDA jádry. Nové karty se jmenují GeForce RTX 2070, GeForce RTX 2080 a konečně GeForce RTX 2080 Ti – seřazeny jsou přitom od nejnižšího výkonu po nejvyšší. Všechny nové karty budou běžet na grafických jádrech Turing. Jde tedy o stejné čipy, které jsou použity v profesionálních kartách Quadro a které vzdávají hold britskému matematikovi Alanu Turingovi. Reálnější grafiku nicméně nabídnou pouze hry, které budou na nový standard připraveny. Nejznámější takovou hrou je v současnosti Battlefield V. Dalším zástupcem pak bude dlouho očekávané Metro Exodus.

 

 

Na lednovém veletrhu CES firma UL Benchmarks představila nový benchmark 3DMark Port Royal zaměřený na ray tracing. Ten byl vyvinut ve spolupráci s předními společnostmi, a sice konkrétně s AMD, Intelem a samozřejmě Nvidií. My se tak můžeme podívat na první výsledky.

 

Naměřené hodnoty se jen obtížně hodnotí. Těžko říct, zda jsou dobré, špatné, když zatím není s čím porovnávat. Objektivně lze říct jen to, že na hratelnost jsou FPS nízké - v případě GeForce RTX 2060 bylo dosaženo 17,7 FPS, v případě nejvýkonnější GeForce RTX 2080 Ti 36,9 FPS. Závěrem nezbývá než připomenout, že ač je řeč o ray tracingu, jde samozřejmě o hybridní rendering, kdy je z většiny použita rasterizace, přičemž ray tracing je nasazen jen pro vybrané efekty. V herní grafice to ani hned tak jinak nebude.

 


Použité zdroje:

https://www.svethardware.cz/ray-tracing-slepa-ulicka-nebo-budoucnost-grafiky/24485

https://www.novinky.cz/internet-a-pc/hardware/481183-nvidia-ma-tri-nove-graficke-karty-hracum-prinesou-vernejsi-grafiku.html

https://www.svethardware.cz/benchmark-3dmark-port-royal-pro-ray-tracing-prijde-v-lednu/48116

https://diit.cz/clanek/raytracing-3dmark-otestovan