A deferred renderinget alkalmazó motorok esetében állandó probléma az élsimítás kérdése. Az elmúlt hónapokban újszerű eljárások kerültek elő, melyek közül az MLAA és az SRAA algoritmus a legismertebb, és ezeket nagyon is jól lehet vegyíteni, a még jobb eredmény érdekében. Az utóbbi módszer a geometria éleinél hoz jó eredményt, de van erre a területre más megoldás is, ami a GPAA, azaz a Geometric Post-process Anti-Aliasing névre hallgat. Az algoritmust Emil Persson, a Just Cause 2 motorprogramozója dolgozta ki, és készített egy futtatható demonstrációt is, ami a DirectX 10-es API-ra épül.
Hirdetés
A GPAA lényegében a kész képkockán kezd el dolgozni, vagyis a jelenet leképzése élsimítás nélkül történik. Ezután a back buffer tartalmát egy textúrába kell másolni, és ebbe egy extra fázist alkalmazva be kell rajzolni a geometria éleit. Ezután meg kell vizsgálni, hogy az adott vonal mely pixel középpontjához van a legközelebb, és az adott képponton belül a vonal egyenletével ki kell számítani a fedettség értékét. Ezt a paramétert kell felhasználni a pixel új színének meghatározásához, amiben a szomszédos képpont színe nyújt segítséget. Persze az sem mindegy, hogy melyik a szomszédos pixel. A függőlegeshez közeli vonalak esetében ennek meghatározás jobb vagy bal irányban zajlik, míg a közel vízszintes vonalak mellett a fenti vagy a lenti szomszédos képpont lesz bevonva a számításba.
(forrás: Humus)
Az algoritmus működéséből kiderül, hogy nagyon jó eredményt adhat a vízszinteshez és a függőlegeshez közeli élek simításánál. A köztes úgymond átlós vonalak esetében azonban már nem biztos, hogy tökéletes lesz a képminőség, de a fejlesztő elmondása szerint még így is nagyon jó a végeredmény, amiről az alábbi összevetés árulkodik.
GPAA kikapcsolva és bekapcsolva (forrás: Humus) [+]
Az elgondolással az egyik probléma, hogy szükség van hozzá a geometriai vázra. Erre a grafikus motor megírásakor gondolni kell, és egy extra fázist kell alkalmazni erre, ami természetesen terheli majd a memóriát. Esetlegesen lehetséges egy geometry shader alkalmazása is a váz kiértékeléséhez, de ez több számítást jelent. Ennél nagyobb gondot okoznak azok a párhuzamos vonalak, amelyek azonos pixeleken belül haladnak. Ilyenkor is működik az algoritmus csak az eredmény rosszabb lesz az élsimítás nélküli állapothoz viszonyítva. Mindezek ellenére a GPAA nagyon ígéretesnek tűnik, így nem lenne meglepő, ha Emil Persson felhasználná az eljárást, vagy annak modernizált változatát az Avalanche motorban.