Hirdetés

AI a játékokban és azon túl

Az NVIDIA-nál minden RTX, de nem minden AI. Cikkünkben tisztázzuk, hogy ezen pontosan mit kell érteni.

RTX, mint gyűjtőfogalom

Az NVIDIA még a 2018-es év őszén prezentálta az első GeForce RTX szériát, amely a Turing architektúrát használta, és számos érdekes újítást vezetett be. Azóta persze már két újabb generáció is született, de ez volt az a pont, amikor az RTX jelző egyértelműen a köztudatba került. Eredetileg úgy tűnt, hogy ez az NVIDIA saját elnevezése lesz a sugárkövetésre, de azóta kiderült, hogy a cég mindent RTX jelzővel illet, ami valamilyen szinten kapcsolódik egy bizonyos, játékokban vagy azokon túl alkalmazható technológiához. Az RTX emiatt gyűjtőfogalommá vált, ami bizony komoly zavart tud okozni a fejekben, hiszen sokan máig csak a sugárkövetésre gondolnak, ha meghallják ezt a három betűt.

A fentiek miatt érdemes lebontani, hogy az NVIDIA igazából mit is ért ezen. Egyrészt nyilván ott a sugárkövetés, de fontos kihangsúlyozni, hogy teljesen szabványos eljárásról van szó, működjön a játék a DirectX 12 vagy a Vulkan megfelelően modern verziójával. Az említett két API nagyjából ugyanazt kínálja a sugárkövetés szempontjából, emiatt elsődlegesen a DirectX Raytracinget mutatjuk be, de nagyon-nagyon hasonló a Vulkan is.

Hirdetés

A Microsoft az első DirectX Raytracing bemutatásakor, amit DXR 1.0-nak szokás hívni, egy úgynevezett dynamic shader based raytracinget kínált fel. Ez leginkább annyit tudott, hogy működött, de egyáltalán nem a teljesítményre volt optimalizálva. A rendszer alapvetően kilőtte a sugarakat, a hardver a gyorsítóstruktúra segítségével megkereste, hogy hol talál el egy háromszöget, ha egyáltalán lesz találat, és ennek megfelelően jöhetett egy hit vagy miss shader. Bármelyiket is hívta meg a program, az be lett linkelve az erre vonatkozó bekötési táblába, és ez alapján tudta a rendszer megosztani a hit vagy miss shaderrel a szükséges adatokat, vagyis ilyen formában volt végigkövetve egy sugár útja, ameddig az tartott.

Control Raytracing kikapcsolva és bekapcsolvaControl Raytracing kikapcsolva és bekapcsolva Control Raytracing kikapcsolva és bekapcsolva (forrás: NVIDIA) [+]

Ezzel önmagában semmi gond nem volt és ma sincs, sőt, jól működő technikáról van szó, ha az adott játék komplex shadereket futtat több virtuális anyag használata mellett a felületeken, hiszen a DXR 1.0-val az árnyalással kapcsolatos munka ütemezését a rendszer kezeli. A probléma a különböző limitációkból származhatott, többek között a gyorsítóstruktúra nem köthető be minden shader lépcsőn, API szintjén kezelt állapotobjektumot és shaderekre vonatkozó bekötési táblát igényel, illetve nem teszi lehetővé a rendszer a relatíve alacsony szintű sugárbejárás kezelését.

Control Raytracing kikapcsolva és bekapcsolvaControl Raytracing kikapcsolva és bekapcsolva Control Raytracing kikapcsolva és bekapcsolva (forrás: NVIDIA) [+]

A felmerült tényezőkre reagálva a Microsoft később bevezette a DXR 1.1-et, amely az úgynevezett inline raytracinget kínálja fel. Itt igazából nem az 1.0 leváltásáról, hanem kiegészítéséről van szó, mivel az 1.1-es verzió a korábbi módszerhez képest megszünteti a bekötési táblát, illetve nem lesz több elszeparált dinamikus shader. Ehelyett már az eredeti shader tartalmazza a kontextus struktúráját, és utasítja a hardvert, hogy kezdje meg a bejárási lépcsőt. Ha egy sugárnak lesz találata, akkor a függvény visszatér, viszont már ott van a kontextus struktúrája a shaderben, amivel rögtön megkezdődhet a munka, nem kell már semmiféle adatmozgás, illetve elszeparált dinamikus shader indítása ehhez. Cserébe az árnyalással kapcsolatos munka ütemezése is kikerül a rendszer alól, de ez a legtöbb esetben kedvező, mert hatékonyabb optimalizálásra ad lehetőséget. Csak ritka esetben van úgy, hogy az eredeti 1.0-s specifikáció működik gyorsabban.

A jó hír, hogy ezzel nem igazán kell a felhasználóknak törődnie, mert minden olyan GPU, amely alkalmas hardveresen gyorsított sugárkövetésre, egyszerre támogatja a DXR 1.0-t és 1.1-et, tehát a fejlesztők tetszőlegesen kiválaszthatják, hogy melyik opciót építik be a játékokba; manapság inkább az utóbbit szokták, de kivétel azért akad.

Az NVIDIA az RTX jelzővel nem igazán különbözteti meg a két eltérő specifikációjú sugárkövetési módszert, és azt is lényegtelennek tekintik, hogy ezek melyik API-ban vannak használva. Valószínűleg a cég úgy látja, hogy túl bonyolult lenne ezt kommunikálni a vásárlók felé, így inkább egyszerűbb üzeneteket közvetítenek, de technikai szempontból fontos hangsúlyozni, hogy itt több, teljesen szabványos módszerről van szó.

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

Azóta történt

Előzmények

Hirdetés