Memóriakímélő élsimításon dolgozik az NVIDIA

Az NVIDIA egy új élsimítási eljáráson dolgozik, amely az AGAA, vagyis az Aggregate G-buffer Anti-Aliasing névre hallgat. Ez a teljesen szabványos rendszer implementálható bármilyen modernebb API-ba, de alapvető követelménye, hogy az adott program deferred leképzőt használjon, azt is az AGAA-nak megfelelő futószalag struktúrával.

Az AGAA célja innen egyértelmű, mivel a deferred leképzőkkel ugyan a hagyományos MSAA speciális formában alkalmazható, de igen nagy sebességvesztés árán, ami azért van így, mert ezek a leképzők az árnyalásra vonatkozó feladatokat elhalasztják addig, amíg a geometria kiszámításra kerül a fényforrások figyelembevétele nélkül. Ez önmagában nem rossz koncepció, de az árnyalási fázishoz szükséges az úgynevezett G-buffer, ami tartalmazza mindazokat az adatokat, amellyel a teljes képszámítás befejezhető. Ez ugye önmagában azt jelenti, hogy a hagyományosabb forward leképzőkhöz képest inkább a memória lesz terhelve, semmint a hardver nyers számítási teljesítménye.

Hirdetés

Az MSAA használatával a memória terhelése olyan mértékű lesz, hogy igen nagy teljesítményesésnek néz elébe a legtöbb hardver, és főleg ez az oka annak, ami miatt a deferred leképzőt alkalmazó programok inkább valami alternatív, főleg utófeldolgozásos élsimítást használnak. Ez a geometria komplexitására is megoldás, mivel az utófeldolgozásos szűrők erre nem érzékenyek, míg az MSAA például nagyon is az.

A probléma tehát világos, de egyik utófeldolgozásos rendszer sem kínál olyan minőséget, mint az MSAA, ami gondot jelent. Az NVIDIA úgy gondolta, hogy kellene egy köztes opció, amit az AGAA fog ellátni. Ez a rendszer egy új adatstruktúrát vezet be, amely nem túl nagy meglepetésre az aggregate G-buffer, vagy AG-buffer névre hallgat.

Az AGAA futószalagja
Az AGAA futószalagja [+]

Nagyon egyszerűen leírva négy fázisra osztható az AGAA munkája. Elsőként szükség van a geometria fényforrások nélküli leképzésére, majd ki kell jelölni egy tetszőleges mintavételt a pixeleken belül, amellyel dolgozva pufferekben tárolni kell a kinyert mélységadatokat és tömörített normálokat. A második fázisban a létrehozott pufferek analizálásával csoportosítani kell azokat a mintákat, amelyek biztosan látszanak a pixelen belül. A harmadik fázisban az eddigi információk alapján megtörténhet az AG-buffer generálása, míg a negyedik fázisban ebből az adatpufferből megtörténhet az árnyalás. Az egész koncepció láthatóan abban különbözik a hagyományosabb modelltől, hogy megpróbálja még azelőtt kiszűrni a szükségtelen felületi információkat, mielőtt azok lerontanák a teljesítményt. Ennek következtében az AGAA előnye leginkább komplex geometriai váz mellett látszik majd.

A 8xMSAA és az AGAA 1C, illetve 2C összehasonlítása
A 8xMSAA és az AGAA 1C, illetve 2C összehasonlítása [+]

Az NVIDIA mérései szerint az AGAA 2C opció a nyolcszoros MSAA-hoz nagyon hasonló minőséget kínál a legtöbb jelenetben, miközben nagyjából 40%-kal kevesebb adatot kell tárolni a memóriában.

Az AGAA problémája
Az AGAA problémája [+]

Az NVIDIA felhívja arra is a figyelmet, hogy az AGAA-nak vannak limitációi. Többek között nagyon rosszul bánik a vékony geometriákkal, mint például haj. Ilyen esetekben az MSAA sokkal jobb eredményt biztosít, ugyanis annyira komplex maga a geometria, hogy képtelenség a mélységadatokat és tömörített normálok alapján eldönteni azt, hogy mi látszik és mi nem. Ilyen esetekben az AGAA téves AG-buffer generál, ami a karakterek hajának megjelenítésén sok grafikai hibát fog eredményezni.

Ugyanakkor az AGAA-nak még a fenti limitáció mellett is kiemelt jelentősége lehet a jövőben, mert a vállalat új VGA-inak memória-sávszélessége csökkent az elődökhöz viszonyítva, tehát a memória kímélésének kell alárendelni az új programokban felhasznált technikákat, elfogadva azok hibáit. Ez okvetlenül fontos ahhoz, hogy a Maxwell architektúrára épülő hardverek hatékonyan működjenek.

Azóta történt

Előzmények

Hirdetés