A sírból tért vissza az MSAA speciális változata

Az MSAA néven ismert élsimítás az egyik legkedveltebb megoldásnak számított az elmúlt évtizedben, de manapság számos kompatibilitási probléma következtében inkább csak szenved ez az eljárás. Ugyanakkor az előző évtizedből érdekes extrákkal sikerült a rendszert megspékelni az AMD és az NVIDIA mérnökeinek, így a hagyományosnak tekinthető színminták mellé bevezették például az általános fedettségmintákat is, amelyekből megszületett az NVIDIA esetében a CSAA, míg az AMD-nél az EQAA élsimítás.

Az extrák értékesnek számítottak, mivel az élsimítás során azt kell megállapítani, hogy az adott háromszög mennyire fedi a pixelt. Erre a színminta tökéletesen alkalmas, hiszen négy vagy akár nyolc helyről is lehet adatokat gyűjteni, amiből már jó eredményt lehet számolni. Az extra színminták azonban drága mulatságnak számítanak, mivel rendkívüli mértékben fogyasztják a memória-sávszélességet. Éppen ezért került bevezetésre a CSAA és az EQAA opcióknál a fedettségminta. Utóbbi egy olyan extra mintavételezési mód, amely viszonylag kevés teljesítményvesztés árán képes olyan extra adatokat biztosítani, amiből jobban behatárolható, hogy az adott háromszög az adott pixel mekkora részét foglalja el. Röviden ennek a lehetőségnek az a lényege, hogy a meglévő színmintákat fedettségmintákkal kiegészítve az élsimítás minősége megnő, vagyis például egy négy színmintával és négy fedettségmintával dolgozó CSAA, illetve EQAA szűrés megközelítőleg hasonló eredményt ad a nyolc színmintával dolgozó MSAA-hoz, miközben az erőforrásigényük jóval alacsonyabb.

A fedettségminta tehát önmagában egy nagyszerű dolog, nem véletlenül vezette be az NVIDIA és az AMD, de a szabványosítást már nem sikerült levezényelni. Többek között a Khronos Groupon belül az iparág 2011-ben leszavazta, míg a Microsoft esetében a szabványosítás lehetőségét meg sem vitatták, bár a DirectX 11-ben megengedték az alkalmazásoknak, hogy kiolvashassák a meghajtókból MSAA-ra vonatkozó beépített eljárásokat, amelyeket az alkalmazás direkten meghívhatott.

A szabványosítás hiányában azonban a fedettségminták sorsa kvázi eldőlt, hiszen egy meghajtókból meghívható funkció az API-ban nem kontrollálható, vagyis túl rossz alapot kínál a fejlesztőknek. Az AMD persze benne hagyta az EQAA funkciót a GCN architektúrára épülő lapkákban, de csakis azért, mert a Microsoft és a Sony igényelte fejlesztés alatt álló konzolokhoz, hiszen az említett gépeknél a hardver képességeit a fejlesztők kihasználhatják. Az NVIDIA a Kepler architektúrához még megtartotta a CSAA-t, de mint ismeretes a Maxwell architektúrából már kivették, míg az Intel az iparág döntését figyelembe véve nem fejezte be a saját fejlesztését, így a Broadwell kódnevű lapka IGP-jébe nem került be a fedettségminták támogatása.

Az elgondolás azonban az elmúlt évek változásaival olyannyira újraéledt, hogy a Khronos Group opcionálisan beépítette a támogatást a Vulkan API előzetes specifikációjába. Ez ugyanakkor valószínűleg csak a Mantle átvett specifikációjának öröksége, de nem vették ki, így az iparágon belül újra megkezdődhet a fedettségminták támogatásának implementálása a hardverek mintavételezőjében. Ez persze hihetetlenül szerencsétlen időzítés, hiszen ha 2011-ben az iparág másképp dönt, akkor ma valószínűleg még mindig ott lenne a támogatás az NVIDIA Maxwell architektúrában, illetve akár a Broadwell kódnevű lapka IGP-jében is.

A jövőre vonatkozóan akkora tragédia azért nincs, hiszen az NVIDIA számára nem lesz jelentős probléma visszaépíteni a fedettségminták kezelését az érkező lapkákba, illetve az Intel is képes folytatni a fejlesztést ott ahol abbahagyták, de maga az időzítés nagyon rossz. Főleg az NVIDIA számára, hiszen az elmúlt évben pont azt kellett elmagyarázni a felhasználóknak, hogy a CSAA-nak nincs jövője, később pedig azt kell, hogy miért építik vissza a támogatást. Ráadásul ez most teljes egészében az önhibájukon kívül történik, hiszen egy leszavazás után nem sokan hitték volna, hogy ebből funkcióból ilyen hirtelen fordulattal mégis szabvány lesz, még akkor is, ha jelen formájában csak opcionálisan támogatható.

A fedettségminták támogatása egyébként az analitikai élsimítási eljárásokhoz jön majd jól. Például az Ubisoft a híres HRAA eljárásának egyik opcionális komponense, a CRAA pontosan e mintákkal dolgozik, vagyis csak olyan grafikus vezérlőn futtatható le, amely támogatja a fedettségmintákat (AMD GCN architektúrára épülő Radeonok és NVIDIA Kepler architektúrára épülő GeForce-ok). Több hasonló analitikai élsimítási eljárás alapvető eleme lehet egyébként egy fedettségmintákon alapuló rekonstrukciós eljárás, amellyel tényleg olcsón meghatározható, hogy az adott háromszög az adott pixelnek mekkora részét fedi le, és ehhez színmintákra sincs szükség. Valószínűleg ezért is épül be a szabványba a funkció, függetlenül attól, hogy az ipar 2011-ben mit akart. Magának a szabványosításnak a levezénylése viszont konkrétan katasztrofális, ennél rosszabbul meg sem lehetett volna oldani.

Azóta történt

Előzmények

Hirdetés