Hirdetés

Akcióban az NVIDIA SRAA algoritmusa

Január végén írtunk arról, hogy az NVIDIA egy újszerű élsimító eljáráson dolgozik. Az alapproblémát a hírben részleteztük: a multisampling élsimítás már nem felel meg a kor követelményeinek, hiszen a deferred rendering technikára épülő motorok esetében nem hoz tökéletes eredményt. Az AMD ezért vezette be az MLAA-t, ami a végső képkockán dolgozik, ám pár helyen nem végez tökéletes munkát, hiszen a subpixel értékeket nem vizsgálja. Az SRAA itt próbál segíteni, mivel a mintavétel szempontjából az MSAA-ra épít, ami nagyon jól kezeli a geometriával kapcsolatos helyzeteket.

Hirdetés

A bemutatott algoritmus két részre bontható. A geometriával kapcsolatos információkat a multisampling alkalmazásával nagyon egyszerű megszerezni. Gyakorlatilag egy nagyfelbontású mélységpufferre van szükség, függően attól, hogy pixelenként hány adat szükséges. Ezen a ponton a minőség skálázható, így bár a teljesítmény az adott megvalósításhoz mérhető, arányaiban a számítások gyorsan végrehajthatók. Az árnyalás már sokkal keményebb dió. Itt a normal bufferbe kerülnek az extra tartalmak, ám fontos, hogy ezt a fázist nem kötelező végrehajtani. Sajnos az árnyalással kapcsolatos információk kinyerése borzalmasan drága, és ezt a részt a fejlesztőknek kell az adott renderelőhöz igazítani, mivel csak így biztosítható a tökéletes eredmény. Ezen a ponton egyébként nagymértékben megnő az SRAA optimalizálásának lehetősége.

Az NVIDIA kimérte a négymintás SRAA-val kapcsolatos adatokat a mélységpufferre vonatkozóan. Élsimítás nélkül 5,5 MB-ot foglal a mélységinformációkat tároló képkocka, továbbá ennek a renderelése 1,1 ms-ig tart, míg az árnyalás 10 ms-ot vesz igénybe. SRAA-val már 22,1 MB-ra nő a mélységpuffer mérete, a rendereléssel kapcsolatos időigény pedig 2,5 ms-ra változik. Mivel a normal buffer esetében nincs korrekció, így az árnyalással kapcsolatos teendők mennyisége nem változik, vagyis marad a 10 ms-os időveszteség. Ezenkívül még ki kell számolni az alkalmazott szűrést is, ami 1,9 ms-ba telik. Összegezve az SRAA-val számolt képkocka 14,4 ms-ba kerül, vagyis 3,3 ms-mal tovább tart a számítás, mintha élsimítás nélkül történne a renderelés. Mindez egy 1280x720 pixeles képkockával történik. Referenciaként előkerült a 16-szoros SSAA vagy felskálázás, ami nyilvánvalóan kiváló képminőséget eredményez, de a mélységpuffer mérete 88,4 MB, a teljes számítás ideje pedig 167 ms lesz. A legnagyobb terhelés a 160 ms alatt végbemenő árnyalásnál következik be, ami érthető, hiszen ezeket az információk a legdrágább megszerezni. Itt az SRAA esetében nincs konkrét informcáió, mivel az NVIDIA algoritmusa a fenti mérések alatt csak a mélységpufferre vonatkozott.


Élsimítás nélkül, SRAA-val és 16x SSAA-val (forrás: Anteru's blog) [+]

A technológia szemléltetésére pár kép szolgál, emellett az elgondolásról mozgásban is készült egy rövid videó, amely innen szerezhető be.

A bemutatón az érintettek beszéltek a jövőről is. Az SRAA és az MLAA nyilvánvalóan nem oldja meg az élsimítással kapcsolatos összes problémát, tehát egyik elgondolás sem tekinthető egyfajta Szent Grálnak, ugyanakkor mindkét elgondolásra lehet építeni a jövőben. Itt a fejlesztőkön múlik minden, mivel általánosan lehetetlen tökéletes megoldást kínálni az élsimítás szempontjából. Az egyetlen lehetséges mód a kép felskálázása, de ez nem Anti-Aliasing. A kutatások tovább folynak ezeken a területeken, és némi információt már elhintettek az előadáson, hogy milyen újításokra lehet számítani. Az elsődleges prioritás az MLAA és az SRAA előnyeinek vegyítése. Az előbbi technológia kiváló hatásfokkal működik árnyalás mellett, de a subpixel értékeket nem vizsgálja, vagyis bizonyos helyzetek mellett rosszul dönt. Itt jöhet képbe az SRAA, ami például felhasználható az MLAA úgymond irányítására, vagyis érdemes kijelölni azokat a részeket a képkockán, ahol feltételezhetően az MLAA nem adna jó eredményt. Gyakorlatilag itt a két technika vegyítéséről lenne szó, hiszen pont ott előnyös az egyik, amiben a másik nem igazán jeleskedik. Ebből rögtön látszik, hogy ezek az algoritmusok nem ellenségek, hiszen tökéletesen kiegészíthetik egymást.

Arról nincs információ, hogy az NVIDIA alkalmazza-e az SRAA-t a driverben. A probléma elsősorban az árnyalással kapcsolatos, hiszen itt az adott program igényeihez kell igazodni. Természetesen a mélységpufferre vonatkozó elgondolás általánosan implementálható, de kérdéses, hogy ez megtörténik-e. A fejlesztők oldaláról már pozitívabb a helyzet. A hibrid élsimító eljárásokhoz jól jön az SRAA, így a jövőben építhetnek rá az érdeklődők.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

Azóta történt

Előzmények