Jak s ray-tracingem bojují vývojáři na PS5? Náročné efekty vyžadují kompromisy
zdroj: Entertainment Weekly

Jak s ray-tracingem bojují vývojáři na PS5? Náročné efekty vyžadují kompromisy

7. 10. 2020 17:00 | Hardware | autor: Jiří Svák |

Jedním z taháků nové generace konzolí je podpora vykreslování ray-tracingu v reálném čase. Technologie, kterou do popředí zájmu přivedla společnost Nvidia s vydáním svých grafických karet GeForce Turing, dokáže realističtěji simulovat efekty jako odrazy zrcadel nebo jiných lesklých ploch, odlesky od materiálů či stíny. Tím dokáže zase o kousek povýšit vizuální kvalitu a realističnost her.

Samotný ray-tracing, tedy způsob, jak se v počítačové grafice vykresluje scéna, přitom není žádnou novinkou. Známe ho ale spíše z prostředí filmového průmyslu nebo architektury, kde tolik nevadí jeho výpočetní náročnost – produkce si může dovolit počkat na renderování snímků v řádu jednotek za minutu. Zato ve hrách, které je nutné obraz vykreslovat na displej v reálném čase a s co nejvyšším počtem snímků za sekundu, je to už oříšek.

Rasterizace versus ray tracing zdroj: Nvidia

Nový hardware, a to platí nejen pro grafické karty poslední generace, ale také pro nadcházející konzole, už sice obsahuje specializované jednotky, které dokážou výpočty ray-tracingu akcelerovat, stále to však není dost. Při návrhu hry se tak vývojáři musejí uchýlit ke kompromisům, aby zachovali hratelné FPS.

To je příklad i nového dílu Spider-Mana s podtitulem Miles Morales, který se má objevit jako launchový titul na PlayStation 5. Efekty ray-tracingu v ukázkových videích nevzbudily úplně nadšené reakce, což přivedlo redaktory Digital Foundry k vysvětlení, jak vlastně takový ray-tracing na konzoli funguje a proč se efekty zdají být mnohdy v nižší kvalitě než zbytek hry.

Spider-Man: Remastered zdroj: Insomniac

Pro nového Spider-Mana si dali vývojáři za cíl 30 FPS při nativním rozlišení 4K. Na vykreslení jednoho snímku tak mají 33,3 ms času (1000/30). Do tohoto časového limitu musejí vměstnat vykreslování běžnou rasterizací a zároveň i efekty ray-tracingu. Ty by vzhledem ke své náročnosti mohly zabrat klidně i více než polovinu výpočetního času, což není pro plynulý běh hry akceptovatelné.

Ray-tracing totiž pro tvorbu efektů nepočítá pouze s viditelným výřezem scény, jako to je u rasterizace, ale i s objekty, které se nacházejí mimo zorné pole „kamery“. Právě takové předměty mají na realističnost osvětlení vliv, stejně jako ve skutečnosti: Okno nad hlavou odráží zapadající slunce a barví scénu dočervena. Lesklý předmět, zrakům postavy skrytý, vrhá na okolí zář reflektoru. Oheň za zády hrdiny se zrcadlí ve zbrani.

Při rasterizaci se taková data zahazují, jen těžko tedy dosáhneme realistického nasvícení. Jak to ale funguje u ray-tracingu?

Než dojde k samotné rasterizaci a data z procesu zmizí, vytvoří si herní engine jakousi mapu objektů v okolí. Takovým modelem hra prožene simulované paprsky světla a detekuje kolize. Z interakcí pak vyvodí, jak obarvit daný pixel, který kolizi zaznamenal. No a na závěr provede ještě postprocessing, který nedokonalý obraz „vyžehlí“.

Pipeline ray-tracingu zdroj: Digital Foundry

Všechny kroky stojí značnou část výkonu. Čím více objektů ve scéně nebo větší rádius pro výpočet efektu, tím je potřeba delší čas na zpracování. Rovněž více paprsků a odrazů znamená více milisekund. Ray-tracing je zrádný v tom, že každý objekt ve scéně může paprsek dále odrážet, a to s rozdílnou intenzitou. Některé materiály ho vyšlou dále, jiné ho z větší části pohltí, další kolize může plodit zase další odraz. A čím více kolizí a skoků nastane, tím delší čas hra na počítání efektu potřebuje.

Nynější implementace ray-tracingu vzhledem k omezenému výkonu hardware však nepočítá s maximem paprsků a nekonečným počtem odrazů. To by žádné PC nezvládlo. Logicky to ale vede k obrazu s šumem, protože systém ve výsledku obarví jen neúplný počet pixelů.

Nedokonalosti se tak kompenzují pomocí odšumovacího algoritmu (denoiser), který dokáže z neúplných dat vytvořit koukatelný obraz. Ale to samozřejmě také stojí nějaký výpočetní čas, jak ukazuje diagram z videa Digital Foundry výše.

Dostat výpočty ray-tracingu na nějakou rozumnou hodnotu tak, aby nedošlo k přílišnému omezení výkonu, je pro vývojáře obtížné i na novém, výkonném hardware konzolí. Jak si s tím poradili v Insomniac Games?

Spider-Man: Remastered zdroj: Insomniac

Podívejte se na obrázek výše. Ukazuje Spider-Mana, kterak se společně s okolím odráží v lesklém okně výškové budovy. Kromě samotné postavy lze vidět na skle i odraz panoramatu, ulice, dopravy, kolemjdoucích a stromů. Pozornému však neujde, že například stromy mají podstatně méně husté listoví nebo že samotný oblek Spider-Mana v odraze nevypadá na plné 4K rozlišení. To je ještě více patrné při přiblížení.

Spider-Man ray-tracing výřez zdroj: Digital Foundry

Je tak zřejmé, že se autoři museli uchýlit k optimalizacím, aby se s výpočtem ray-tracingu do přiděleného času vměstnali.

Jednou z nich je omezit počet objektů k interakci a délku dráhy paprsků. Takový kompromis by ale znamenal, že některé modely by z odrazu ve skle zmizely, například vzdálené budovy. Jak je vidno, to nebude případ Spider-Mana, který má naopak v odraze velkorysé panorama.

Dejme tomu, že by se vývojáři rozhodli místo toho snížit počet vystřelovaných paprsků. Museli by omezení nastavit tak, aby zisk výkonu nevyústil ve vizuálně nepovedený nebo nefunkční efekt. Pokud by takový kompromis nestačil, je zde ještě možnost snížit rozlišení, ve kterém hra ray-tracované odrazy vykresluje, což bude pravděpodobně případ Spider-Mana.

Podle Digital Foundry, který výkon PlayStationu 5 přirovnává zhruba ke grafice GeForce RTX 2060 Super, lze snížením rozlišení RT efektů na 1080p z nativního 4K získat 25–30 % výkonu zpět. Jde sice o porovnání PC hardware s odlišnou architekturou systému, než je PS5, nicméně pro ilustraci je příklad dostatečně návodný.

4K RT versus 1080p RT Snížením rozlišení ray-tracovaných odrazů lze ušetřit spoustu výkonu. | zdroj: Digital Foundry

Jako další optimalizace se pak nabízí redukce úlohy částicových efektů. Transparentní nebo polotransparentní částice typu kouř jsou ve hrách často důvodem nevalného výkonu. Přidají-li se do počítání ray-tracingu, mohou běh hry až paralyzovat.

Coby transparentní částice se přitom berou i listy. Jistě si vzpomenete na první testy Battlefieldu V, kdy se hráč ocitl v kampaňové mapě Tirailleur se spoustou padajícího a poletujícího listí. Po zapnutí RT odlesků kleslo počítadlo FPS i na tehdy high-endových kartách k nehratelným hodnotám. Vývojáři z DICE proto v následných záplatách scénu upravili tak, že počet listů snížili a omezili jejich interakci při počítání ray-tracingu, čímž se výkon zvedl. To stejné se pravděpodobně děje i v případě Spider-Mana, a proto v odrazu vidíme stromy jako méně košaté.

Spider-Man: Miles Morales zdroj: Insomniac

Video Digital Foundry pěkně ukazuje, jaké možnosti mají vývojáři, aby dosáhli hratelných FPS při využití ray-tracingu. A rovněž připomíná, že ray-tracing v reálném čase, ač prezentovaný na nových konzolích jako hotová věc, je stále velmi náročná technologie. Očekávání, že hry budou dosahovat s takovým nastavením 60 FPS, je tak nutné krotit.

Se startem nové generace jsou nároky publika pochopitelně vysoké, nicméně herním studiím nějakou dobu potrvá, než se s hardware, vývojářskými nástroji i novými technologiemi detailně seznámí a dokáží je plně využít. Ray-tracované grafické orgie v 60 FPS si užijeme spíše až za několik let.

S příchodem nových konzolí se ale znova nabízí otázka, zda je vlastně nutné, aby se takto „výpočetně drahé“ efekty do her implementovaly už v první vlně titulů nové generace. Vývojáři dnes umí kouzlit se screen space odlesky a odrazy tak, že spousta hráčů pozná rozdíl oproti ray-tracingu až v přímém srovnání. Nebylo by tedy vhodnější využít ušetřený výkon pro vyšší FPS? Anebo jiné vylepšení, třebas nevizuálního charakteru?

To je jistě otázka, kterou si při tvorbě hry klade každý produkční tým. Ostatně, někteří vývojáři se už stačili vůči ray-tracingu vymezit jako k technologii velkých nároků s malým dopadem na vizuál. Ale vzhledem k tomu, jak se k ray-tracingu stavějí výrobci hardware, kteří pro něj ve svých GPU navrhují speciální akcelerační jednotky, je o budoucnosti vykreslování už asi rozhodnuto.

Smarty.cz

Nejnovější články