Hirdetés

Marvel’s Spider-Man: Miles Morales Tech Review

Az Insomniac Games megint hatalmas technológiai bravúrt alkotott, ezúttal PS5-ön. – írta: RangerFox, 4 hete

Fidelity Mode

A Fidelity mode szolgáltatja a legjobb képi megjelenítést, Ray Tracing mellett natív 4K felbontást, mindezt 30FPS-sel. Apró szépséghiba viszont, hogy a játékban jelen van a Dynamic Resolution Scaling, aminek köszönhetően a megjelenített kép és effektek függvényében dinamikusan változtatja a megjelenített kép felbontását annak érdekében, hogy ne következzen be frame drop. Mivel a DRS jelen van mindhárom mode esetén, így kicsit nehéz volt tesztelni és pixeleket számolgatni. Általánosságban elmondható, hogy a legtöbb esetben tartja a natív 4K felbontást, legrosszabb esetben sem ment lejjebb 1800p-nél.

Hirdetés

Valós idejű sugárkövetett tükröződések… Ha csak egy mód van rá, lehetőleg kerüljük a magyar fordítását a Ray Tracingnek, elég bután hangzik. Mindenütt halljuk, tudjuk, hogy jó dolog, de mi is ez egész pontosan és hogyan működik? Maga a technológia nem új dolog, már a 2000-es évek elején is létezett. Viszont, hogy elterjedjen az erre alkalmas hardver a gaming piacon, egészen 2018-ig várni kellett. A technológia lehetőséget ad arra, hogy valósághűen szimulálja azt, ahogy a fény az adott objektumokról visszaverődik, így élethű tükröződéseket, árnyékokat és fény effekteket eredményezve. Ez azért fantasztikus dolog, mert eddig statikus megoldásokra (többnyire cube map és SSR) kellett támaszkodniuk a fejlesztőknek. A Ray Tracing megjelenésével viszont egyrészt sokkal valósághűbb végeredményt kapnak, ráadásul a global illumination-nek hála mindehhez sokkal kevesebb időre és befektetett munkára van szükség, ezzel óriási terhet levéve a fejlesztőkről.

Ray Tracing. Ray Tracing everywhere! Figyeljük meg Miles ruhájáról a padlón visszaverődő diffused bounce lighting effektet. A visszatükröződéseken látszik, hogy a rendering felbontás negyede csupán

Valójában a modern game engine-ekbe egész egyszerű implementálni a ray tracing támogatást. Viszont vannak hátrányai a technológiának: elsősorban az, hogy rettentően erőforrásigényes, ugyanis valós időben kell minden dinamikus objektumot renderelnie a tükröződő felületre, azokat a dolgokat is, amiket alapesetben nem kellene, hiszen nem látszódnak a kamera látóterében. De hogy is működik mindez? Először is, a GPU lekéri a környezetében található összes objektum primitív mását. Erre azért van szükség, mert egy adott jelenetben a fény bármelyik irányból érkezhet, bármilyen távolságból és bármilyen objektumról visszapattanhat. Ezért a GPU-nak kell valamilyen fogalmának lenni a környezet felépítéséről. Ehhez pedig egyszerű, könnyen olvasható geometriai alakzatokra bontja a környezetet (többnyire téglatestekre), hiszen ilyen egyszerű alakzatokkal könnyebb dolgozni és számolni.

A jeges aszfaltról visszaverődő diffused lighting és dinamikus árnyékok. A mozgó npc-k képmásai is visszaverődnek a jégről.

Második lépésként (erről kapta a technológia a nevét) sugarakat küld az így kapott környezetre, hogy megállapítsa, milyen objektumokba ütközik a fény. Ehhez a kisebb objektumokat egy láthatatlan dobozba csomagolja, hogy pontosabban tudja követni a fény mozgását. Minden egyes ütközési pontot, amin a fény áthalad, regisztrál és eltárol. Nyilván az ütközési pontokról is visszaverődnek fénysugarak, és azoknak az útját is nyomon követi. Beláthatjuk, hogy nagyon hamar nagyon komplex végeredményt kaphatunk. Minél több ilyen fénysugarat küld a környezetre, minél messzebb pattan egy-egy fénysugár, vagy minél több ütközési zónát kell nyomon követnie az algoritmusnak, annál erőforrásigényesebb folyamat ez. A harmadik és negyedik lépéshez szükséges a hardverszintű támogatás a Ray Tracinghez. Ez a shading, mely során minden regisztrált ütközési ponthoz pixelenként kiválasztja a megfelelő színt, amit aztán tükröz a felületre. Az így kapott tükröződés viszont meglehetősen csúnya, torz és zajos lehet. Ennek kiküszöbölésére van szükség a negyedik lépésre, mely során ezeket a hibákat kijavítja az algoritmus, hogy tökéletes tükröződést kapjunk.

Ez mind nagyon jól hangzik, viszont könnyen beláthatjuk, hogy ez a folyamat nagyon idő és hardverigényes. Mivel ezt mind néhány milliszekundum alatt kell létrehoznia (és persze folyamatosan fenntartania a dinamikus objektumok és környezet miatt), így nem várhatjuk el, hogy ugyanolyan minőségben látszódjon minden tükröződés, mint ahogy a játék renderel. Éppen ezért különböző technikákat kell a folyamat után eszközölni, hogy az eljárás ne járjon teljesítményvesztéssel.

Miles tökéletesen visszaverődik az ablakról, ahogy a kamerán nem látható objektumok is. Figyeljük meg, ahogy a dinamikusan mozgó npc-k a tükröződésben is árnyékot vetnek.

Először is, a legszembetűnőbb a tükröződések felbontása: konkrétan a renderelt kép felbontásának a negyede lesz (DRS függvényében). A másik a dinamikus objektumok mozgása: Miles és az utcán mozgó járművek minden képkockában frissítésre kerülnek. Ellenben a járókelőkkel, ők ugyanis csak minden második frame-ben kerülnek frissítésre. Így tudják elérni azt, hogy minden megfelelően kerüljön tükrözésre, még a dinamikus árnyékok is. A következő megkötés a másodlagos visszatükröződéseket érinti, ugyanis itt nincsenek ilyenek. Arra kell gondolni, hogy például egy irodaház üvegéről visszatükröződő másik irodaház üvegéről visszavetülő objektumok már nem jelennek meg az eredeti tükröződésben. Ez egyébként egy nagyon erőforrásigényes folyamat lenne, abban a kevés játékban, amik támogatják, ezt is cube map segítségével valósítják meg. Továbbá a tükörképben látható irodaházak belseje nem tükröződik. Még egy apró drawback, hogy az ambient árnyékok nem kerülnek bele a visszatükröződésbe. Az utolsó pedig a víz, ami körülveszi New Yorkot. Mivel a felülete túl nagy, ezért a játék egyszerűen SSR technológiát használ a benne lévő tükröződések megjelenítésre. Ez utóbbi egyébként nem annyira zavaró, hiszen gameplay közben messzire elkerüljük a vizet.

Szerintem önmagáért beszél...

A cikk még nem ért véget, kérlek, lapozz!

Előzmények