Az utóbbi években látványosan nőtt a játékok részletessége, közben pedig egyre gyakrabban ütközünk bele ugyanabba a korlátba: a videomemóriába. Ilyenkor többnyire mindenki a textúrákra gondol, pedig a modern játékoknál jóval több minden foglal helyet a VRAM-ban. Geometria, különféle bufferek, ray tracinghez szükséges gyorsítóstruktúrák és egy rakás háttéradat osztozik ugyanazon a kereten.
Az NVIDIA RTX Mega Geometry SDK 2.0 egyik fontos újdonsága, a Cluster LOD pont ezen próbál javítani. A név nem túl beszédes, a mögötte lévő ötlet annál érdekesebb: a rendszer a geometria részletességét folyamatosan ahhoz igazítja, mire van ténylegesen szükség, és mennyi memória áll rendelkezésre.
Ray tracing mellett ennek már komoly jelentősége lehet. Egy mai játék világában elképesztő mennyiségű geometriai adat gyűlhet össze. Egy szikla, egy épület homlokzata vagy egy autó modellje közelről rengeteg háromszögből épül fel. Néhány ilyen objektum még nem gond, egy komplett városnál már egészen más nagyságrendről beszélünk.
Ray tracing esetén a GPU-nak a geometria mellett olyan gyorsítóstruktúrákat is kezelnie kell, amelyek segítségével gyorsabban eldönthető, hogy egy sugár mivel találkozik a jelenetben. Minél részletesebb a világ, annál több adatot kell kordában tartani.
A geometria is komolyan terheli a VRAM-ot
A VRAM-problémákról szóló vitákban a textúrák kapják a legtöbb figyelmet, és ez teljesen érthető. A nagy felbontású textúrák tényleg sok memóriát foglalhatnak, főleg 1440p vagy 4K mellett.
Csakhogy a játék világának formáját is tárolni kell.
Minden részletes modell geometriai adatokat tartalmaz. Ha egy fejlesztő aprólékos sziklákat, sűrű növényzetet, romokat, járműveket, karaktereket és telepakolt belső tereket akar, ezek együtt már hatalmas adatmennyiséget jelentenek.
Az Unreal Engine 5 Nanite technológiája azért lett ennyire fontos, mert megkönnyítette a rendkívül részletes modellek használatát. A motor dinamikusan kezeli, hogy az adott pillanatban mennyi geometriai részletre van szükség, így a fejlesztőknek kevésbé kell minden egyes objektumhoz hagyományos LOD-láncot készíteniük.
Ray tracingnél újabb korlát jelenik meg. A képernyőn megjelenő Nanite-geometria és a sugárkövetéshez használt geometria nem mindig ugyanazt a részletességet képviseli. Ha a ray tracing mindenhez a lehető legrészletesebb adatokat használná, a memória- és számítási költség nagyon gyorsan elszállhatna.
Az RTX Mega Geometry ezt a részt próbálja kezelhetőbbé tenni.
Hogyan dolgozik a Cluster LOD?
A játék világának geometriáját kisebb klaszterekre lehet bontani, a rendszer pedig folyamatosan eldönti, ezekből milyen részletességre van szükség az adott nézőpontból.
Ha egy objektum messze van, teljesen felesleges ugyanannyi geometriai adatot használni hozzá, mint amikor közvetlenül mellette állunk. Ugyanez igaz azokra a tárgyakra is, amelyekből alig néhány pixel látszik a képernyőn.
A hagyományos LOD-rendszereknél gyakran több külön modellváltozat készül ugyanahhoz az objektumhoz. Közelről részletes, távolabbról egyszerűbb változat jelenik meg. A Cluster LOD ennél finomabb szemcsézettséggel tud dolgozni.
A kisebb geometriai klaszterek részletessége külön szabályozható, és a szükséges adatok csak akkor kapnak nagyobb szerepet, amikor tényleg szükség van rájuk. Közben az is számít, mekkora memóriakeretet kapott a rendszer.
Az RTX Mega Geometry SDK egyik mintajelenete, a Zorah 1,6 milliárd egyedi háromszöget tartalmaz. Instancinggel együtt körülbelül 18,9 milliárd háromszögről beszélünk.
Ilyen méretnél már nem lehet úgy gondolkodni, mint egy hagyományos pályánál. Nem reális mindent teljes részletességgel egyszerre a videomemóriában tartani.
A referenciaalkalmazásban külön memóriakeret szabályozható a streamelt geometriához és a ray tracing gyorsítóstruktúráihoz kapcsolódó adatokhoz. Az alapérték mindkét esetben 2048 MB körüli lehet, de ezek állítható értékek, nem fix hardverkövetelmények.
Ha a rendszer közel kerül a meghatározott kerethez, csökkentheti egyes klaszterek geometriai részletességét. Ettől nem lesz rosszabb hirtelen az egész jelenet, a kevésbé fontos vagy távoli részletekből enged előbb. Jó esetben ebből a játékos semmit nem vesz észre.
A textúrák más történet
A két megoldást könnyű összekeverni, mert mindkettő adatokat mozgat és részletességet szabályoz.
A texture streaming a felületekhez használt képekkel dolgozik. Nem kell egy teljes játékvilág összes textúráját maximális felbontásban egyszerre a VRAM-ba tölteni. A motor folyamatosan cserélheti őket, és a távoli objektumokhoz kisebb mip szinteket használhat.
A Cluster LOD a tárgyak formájával foglalkozik. Egy szikla közelről lehet egészen szabálytalan, tele kisebb törésekkel és kiálló részekkel. Messziről ezek jelentős része már alig látható, ilyenkor fölösleges ugyanazt a geometriai részletességet fenntartani.
A két rendszer természetesen egyszerre is dolgozhat. A játék eldönti, milyen textúraminőségre van szükség, közben pedig a geometria részletességét is hozzáigazítja a helyzethez.
Ezért félrevezető pusztán egyetlen VRAM-számot nézni. Ha egy játék 11 GB videomemóriát használ, abból még nem derül ki, mennyi ment textúrákra, geometriára, gyorsítóstruktúrákra vagy más renderelési adatokra.
A ray tracing tovább bonyolítja a képet. Korábban külön megnéztük, hogyan próbálja az AMD csökkenteni a ray tracing memóriaigényét, és ott is ugyanaz a probléma köszönt vissza: a modern grafika egyre több adatot akar egyszerre kezelni.
Ray tracingnél derül ki, mire képes igazán
A sugárkövetéshez nemcsak több számítási teljesítmény kell. A háttérben a jelenet geometriáját is úgy kell rendszerezni, hogy a sugarak gyorsan megtalálják, mivel ütköznek.
Ehhez épülnek a gyorsítóstruktúrák, és minél bonyolultabb a jelenet, annál fontosabb, hogy ezek ne nőjenek feleslegesen túl nagyra.
Az RTX Mega Geometry segítségével a ray tracing részletesebb geometriai adatokkal dolgozhat úgy, hogy közben a teljes világ minden része nincs egyszerre maximális részletességgel jelen.
A Gears of War: E-Day kapcsán ezt már konkrét példán keresztül is megmutatták. A játék Unreal Engine 5-re épül, Nanite-ot használ, és az NVIDIA szerint a Mega Geometry segítségével a ray tracinghez használt geometria közelebb kerülhet ahhoz, amit a játékos ténylegesen lát.
Ha a képernyőn egy objektum nagyon részletes, a ray tracing viszont egy egyszerűbb geometriai változattal számol, eltérések jelenhetnek meg az árnyékokban vagy a tükröződésekben. Állóképen ez sokszor alig feltűnő, mozgás közben már előjöhet villódzás vagy furcsa formaeltérés.
A bemutatóban a The Coalition fejlesztői pont azt mutatják meg, hogyan próbálják ezt kezelni egy valódi játékban.
A kisebb VRAM-os kártyák ettől még nem menekültek meg
A geometria okosabb kezelése nem oldja meg a teljes VRAM-problémát. A textúrák továbbra is helyet foglalnak, a rendereléshez szükséges bufferek ugyanúgy megmaradnak, és a ray tracing egyéb adatai sem tűnnek el.
Egy 8 GB-os kártyánál továbbra is 8 GB a keret. Annyi változik, hogy a geometria kezelésénél kevésbé kell pazarlóan bánni vele.
Ha kisebb memóriakeret áll rendelkezésre, a rendszer visszavehet az egyes klaszterek részletességéből, mielőtt az egész működés memóriahiányba futna. Bizonyos helyzetekben ez kulturáltabb eredményt adhat, mint amikor hirtelen megugrik az adatcsere és vele együtt a frametime is.
A jelenlegi RTX Mega Geometry SDK demo legalább 10 GB VRAM-mal rendelkező RTX GPU-t kér. Ebből nem érdemes általános minimumkövetelményt gyártani. Egy fejlesztői mintaalkalmazásról van szó, nem arról, hogy minden későbbi Mega Geometryt használó játék kötelezően ugyanennyit fog igényelni.
Egy nagy világban már minden adatmozgás számít
Egy városi jelenetben több száz vagy akár több ezer olyan objektum lehet, amelynek a játékos csak egy kis részét látja közelről. Utcai lámpák, autók, korlátok, üzletek, homlokzatok, növényzet, törmelék, kisebb tárgyak – mind egyszerre vannak jelen a világban.
Az emberi szem rengeteg részletet egyszerűen nem tud megkülönböztetni távolról. Emiatt a motor egyik fontos feladata az lesz, hogy eldöntse, mire érdemes ténylegesen erőforrást fordítani.
A Cluster LOD még a takarást is figyelembe veheti. Ha egy objektum nagy része egy másik tárgy mögött van, nincs sok értelme ugyanazt a geometriai pontosságot fenntartani hozzá.
Egy-egy ilyen optimalizáció külön nem feltétlenül látványos, de milliárdos háromszögszámoknál már komoly különbséget jelenthet.
A Gears of War: E-Day lesz az egyik első komoly próba
A fejlesztői demókban sok minden működik. Egy valódi játék egészen más terhelést jelent.
A Gears of War: E-Day azért lesz különösen érdekes, mert egyszerre használ Unreal Engine 5-öt, Nanite-ot, modern megvilágítási rendszereket és ray tracinget.
Ott már együtt lehet majd nézni az FPS-t, a VRAM-használatot 1440p és 4K mellett, a frametime stabilitását és azt is, hogy gyors kameramozgásnál látható-e bármilyen részletességváltás vagy geometriai pop-in. Az sem mellékes, hogy ebből a játékos mennyit vesz észre normál játék közben.
A modern grafikai technológiáknál gyakran ez számít többet, mint egy jól kinagyított összehasonlító kép. Egymás mellé rakott állóképeken könnyű eltéréseket találni, játék közben már jóval nehezebb.
A Control Resonant path tracing teljesítményénél is látszott, hogy a technológiai bemutató önmagában kevés. Az FPS, a frametime, a VRAM-használat és a tényleges képminőség együtt mutatja meg, mennyire használható egy új megoldás.
Több részlet csak akkor ér valamit, ha a motor elbírja
A fejlesztők egyre nagyobb és részletesebb adatállományokkal dolgoznak, miközben szeretnének minél kevesebb kézi optimalizálást végezni. A Nanite már ebbe az irányba mozdult el, most pedig a ray tracinget is hozzá kell igazítani ugyanahhoz a részletességi szinthez.
Ehhez gyors háttértár, jó streamingrendszer, megfelelő memóriakezelés, elég erős processzor, gyors GPU és jól összehangolt motor kell. Ha valamelyik láncszem gyenge, előjöhetnek azok a problémák, amelyeket a modern PC-s játékokból már jól ismerünk: késve megjelenő részletek, frametime-tüskék, pop-in vagy rövid megakadások.
Amikor viszont minden jól működik, ebből nem sok látszik. A játék részletes marad, miközben a háttérben folyamatosan változik, melyik geometriai adat kap több erőforrást, és melyikből lehet visszavenni.
A VRAM ettől még ugyanúgy számít
Az RTX Mega Geometry 2.0 nem teszi feleslegessé a nagyobb videomemóriát. Inkább arra mutat rá, hogy a kapacitás mellett egyre többet számít majd az is, mennyire ügyesen gazdálkodik vele a játékmotor.
A Gears of War: E-Day lesz az egyik első olyan nagy játék, ahol ezt már nem fejlesztői demóban lehet nézni. Ha ott a Mega Geometry úgy teszi részletesebbé a ray tracinget, hogy közben játék közben szinte észre sem vesszük a háttérben zajló adatcserét és részletességváltást, akkor pontosan azt csinálja, amiért létrehozták.




