Full-Scene AntiAliasing - pokračování





XGI

Ordered-Grid SuperSampling

    Společnost XGI je nejmladší společností, která vyrábí akcelerátory určené pro herní nasazení. Vytyčila si poměrně vysoké cíle a stále není její situace příliš jasná. Z dnešního pohledu se zdá, že se snaží výkonu dosahovat hrubou silou a moderní technologie jí příliš neříkají. Zaměřme se na FSAA její série Volari, tedy konkrétně V5/V8 (Ultra/Duo). Když jsem poprvé četl jejich specifikace a narazil na zmínku o SuperSamplingu, docela mě to zarazilo. Když jsem se dozvěděl, že jde o Ordered-Grid, začínal jsem už tušit, že se XGI s vývojem v tomto směru zrovna nepřetrhla, a když jsem viděl první screenshoty na serveru pctuning, bylo moje zklamání dovršeno.

    Nikdy by mě nenapadlo, že společnost, která se chce stát během několika let grafickým leaderem (ještě k tomu v době, kdy je váha kladena na algoritmy jako FSAA a AF) přijde s takovým algoritmem: Který režim FSAA je nejpomalejší? SuperSampling. XGI ho používá. Jaké rozložení vzorků je nejméně výhodné z hlediska účinnosti? Uspořádané (OG). XGI ho používá. Jak je možné pomocí AntiAliasingu dosáhnout zhoršení obrazu pod původní kvalitu? Sdílením vzorků pro sousední pixely. XGI FSAA je sdílí.

    Když jsem viděl první obrázky, myslel jsem nejprve, že ani nejde o FSAA, ale o bluring. Za moment se dozvíte proč.


OGSS 4x.

Takto vypadá standardní aplikace OGSS.
Volari OGSS 4x ???

A takto je (podle mě) praktikován OGSS na Volari...



4x 16-tap Ordered-Grid SuperSampling

    Mnoho recenzentů považuje stávající situaci za bug. Mě se ale zdá nelogické, aby již v několikáté verzi ovladačů byl tentýž a takto výrazný bug. Navíc si nedokážu představit, jak by mohl takovýto bug vzniknout. Zkrátka, XGI se podle mě snažila pomalý a neúčinný algoritmus "dotáhnout" podobným způsobem, jaký používá nVidia pod názvem 9-tap AntiAliasing, tedy sdílení okolních subpixelů pro zvýšení účinnosti FSAA. XGI ale zapomnělo na pár faktů. Jednak nelze sdílet subpixely sousedící ze všech stran (to už je totiž skutečný bluring) a při sdílení sousedních subpixelů nelze hodnotu všech brát stejnou vahou. Výsledek? Algoritmus je pomalý, neúčinný a drasticky rozostří celý obraz. Jediné plus, že zvýší kvalitu některých textur. Rozostření obrazu a zostření textur si nelze snadno představit, takže jsem udělal výjimku a přiložil výřez obrázku z pctuningu.



Volari FSAA (přejeď myší přes obrázek)

Přes = FSAA / mimo = bez FSAA
S a bez Volari OGSS


    Myslím že je vidět vše. Obraz má nižší ostrost, ale textury (třeba deska stolu či pravá zídka) jsou i přes celkovou rozmazanost zřetelně lepší.




ATi

    ATi začala s FSAA až na Radeonech, i když pozdější karty série Rage podporují Edge-AA (pro D3D). Každopádně nelze říct, že by se ATi používanými algoritmy zrovna chlubila. Princip svého FSAA zveřejnila jen 1x a to ve SmoothVision 1.0 Whitepaperu (FSAA DX 8.1 kompatibilních Radeonů). ATi doposud šla třemi různými cestami. První na DX 7 Radeonech (7000 až 7500), druhá na DX 8.1 Radeonech (8500 až 9200) a třetí na DX 9 Radeonech (9500 a dále).


Radeon 7xxx series FSAA

    O algoritmu sedmitisícovek toho vím nejméně. (režimy 2x a 4x s volbou kvalita/výkon). Ani z obrázků nejsem schopen nicmoc vykoukat. Algoritmus je o něco rychlejší, než OGSS v podání GeForce (procentuelně) a taktéž účinnost je vyšší. Podivný je ale vliv na textury. Při použití režimu "quality" není téměř žádný, při "performance" mírně zvyšuje kvalitu NĚKTERÝCH textur. Pokud náhodou o tomto algoritmu něco víte, dejte mi vědět.


Semi-Jittered SuperSampling (SmoothVision 1.0)

    Touto cestou se ATi dala při vývoji Radeonu 8500. Podstatu jsem popsal v prví části článku; jde o pravidelně rozložené vzorky, jejichž část má pozici změněnou podle náhodně vygenerované předlohy. ATi se chlubila, že její režim 2xQ je lepší, než konkurenční režim 4x (nVidia OGMS na GF3). Náhodná pozice vzorků sice dokáže výrazně zvýšit účinnost FSAA, ale při nízkém množství vzorků může docházet ke vzniku nepříjemných vizuálních artefaktů. To ATi řešila tím způsobem, že např. při režimu 4x byla náhodná jen pozice jednoho vzorku ze čtyř. Ovladače umožňují režim 2x, 3x, 4x, 5x a 6x. Pro každý je dále na výběr mód "quality" či "performance". Následující obrázky slouží pro přiblížení jednotlivých režimů; nejsou v nich zahrnuty pozice náhodných vzorků - pro snazší grafické vyjádření jsou pozice všech vzorků znázorněny jako uspořádané.


Quality:


1.0 SmoothVision 2xQ

1.0 SmoothVision 3xQ

1.0 SmoothVision 4xQ

1.0 SmoothVision 5xQ

1.0 SmoothVision 6xQ





Performance:


1.0 SmoothVision 2xP

Antialiasing je proveden jen na každé druhé řádce. V určité situaci může tato metoda obraz zhoršit.

1.0 SmoothVision 3xP

Na 25% pixelů je proveden AA 4x; na 25% není AA proveden vůbec a na zbytku (50%) je proveden 2x.

1.0 SmoothVision 4xP

Na jednotlivých sloupcích je střídavě proveden AA 4x a 2x. S největší pravděpodobností jsou pro pixel sloupce "2x" sdíleny dva nejbližší vzorky sousedního "4x" pixelu, takže každý druhý sloupec má mírně zhoršenou ostrost v jednom směru (posun o 1/3 pixelu)

1.0 SmoothVision 5xP

De-facto režim 4x se sdílenými dvěma nejbližšími vzorky jednoho sousedního pixelu. Obraz má zhoršenou vertikální ostrost.

1.0 SmoothVision 6xP

Na jednotlivých sloupcích je střídavě proveden AA 4x a 2x. Žádné sdílení.


    V tabulce jsem se u režimu 2xP zmiňoval, že může obraz zhoršit. Konkrétně jde o zvýšení aliasu při úhlech kolem 45°, neboť AA každého druhého řádku vytvoří nepříjemný defekt: v AA řádku byl vytvořen určitý (např. tmavší odstín); ten by měl pokračovat, ale v dalším řádku (bez AA) je namísto něj odstín původní. Názorně na obrázku:


Ideální obraz Bez FSAA Standardní FSAA
ATi 2xP SmoothVision 1.0 na jedné řádce provede AntiAliasing a druhou ponechá beze změny. Při úhlech kolem 45° pak může dojít k tomuto defektu. Dopočtený odstín nejenže nesníží Aliasing, ale ještě ho zvýší...
A zde tentýž obrázek, jen bez mřížky (aby byl defekt lépe patrný).


    SmoothVision 1.0 2xP může za určitých okolností v obrazu vytvořit výše znázorněné dvoupixelové zuby, které obrazu na kvalitě opravdu nepřidají. Ostatní režimy jsou z tohoto hlediska v pořádku. Režimy 4xP a 5xP mohou mírně snížit ostrost obrazu v jednom směru (1/3 pixel linear blur), přičemž 4xP jen v každém druhém sloupci. Ještě bych měl upozornit, že verze ovladačů Catalyst 4.2 podstatně překopala SmoothVision 1.0 a výrazně zvýšila dopad FSAA na textury (kladně).



SmoothVision 2.x

    Při příchodu R9700 sice ATi propagovala rychlost a účinnost nového FSAA (poprvé MultiSampling), ale vůbec se nechlubila použitým algoritmem. To poukazuje na fakt, že přestala používat vlastní SmoothVision 1.0 (Semi-Jittered Sampling). Dnes je velice rozšířen názor, že ATi používá Rotated-Grid MultiSampling (tedy totéž, jako 3Dfx na Rampage). Což by mohlo vysvětlovat důvod, proč se ATi tímto algoritmem nechlubí (proč se chlubit "cizím peřím"?). Taktéž režimy tomu odpovídají. Podporovány jsou 2x, 4x a 6x bez možnosti volby kvality. Na rozložení vzorků se mrkněte do předchozího dílu k 3Dfx. Jelikož je možné procesory od ATi řetězit, můžeme se setkat s víceprocesorovými profi-kartami. Např. Evans & Sutherland ve svých Hi-End simulátorech používají grafickou kartu založenou na čtyřech procesorech Radeon 9700 zvanou simFusion 6000q, která je schopna FSAA až 24x



3DLabs

SuperScene

    Společnost 3D Labs dnes vyrábí především profesionální grafické akcelerátory. Její série WildCat používá FSAA nazývaný "SuperScene". Podporován je režim 8x a 16x. 3DLabs prohlašuje, že jde o velice efektivní, účinný a kvalitní AntiAliasing. Což je pravda. A jak tomu už bývá, pokud jde o kvalitní AntiAliasing, tak má vždy něco společného s 3Dfx. Ani tentokrát tomu není jinak. Nebudu dál napínat, jde o Stochastic MultiSampling. Tedy zcela náhodné rozložení vzorků (použité jen na okraje polygonů). (tento režim jsem rozebíral ve dvou předchozích dílech).

    Jak je špatným zvykem, vždy když se objeví nějaká slušná technologie, tak je svým autorem (popř. prodejcem) notně přechválena. Taktéž 3Dlabs zachází se SuperScene. Ukázkou budiž jeden obrázek z whitepaperu:





    Jak vidíte, rozložení vzorků je na tomto obrázku všechno, jen ne náhodné. Pánové z 3D Labs si dali hodně záležet, aby vykrytí vzorky bylo maximálně blízké ideálnímu. Zkuste si představit, jak by se změnil výsledek, kdybyste prohodili rozložení vzorků pravého a prostředního pixelu (Proč ne? Když je rozložení podle 3D Labs náhodné, tak to teoreticky nemůže ovlivnit situaci)... A jak by to dopadlo? Třeba ten malý červený trojúhelníček v prostředním pixelu by pak nebyl pokryt ani jediným vzorkem, natož dvěma jak je prezentováno. Stejně tak z modrého trojúhelníčku v pravém pixelu by nebyl odebrán ani jediný vzorek. Profesionální :-).

    Toto je právě ta slabší část Stochastic Samplingu. Vzorky se mohou rozložit naprosto neefektivně a výsledek může být slabý. Podle mého názoru by bylo ideální, kdyby rozložení vzorků nebylo úplně náhodné, ale aby byly pozice určovány podle jakési mapy, která vychází z RG rozložení a pozice každého vzorku je generována náhodně, ale se zvýšenou pravděpodobností výskytu v prostředí pozice vzorku RG. Znázornil jsem to na obrázku (režim 4x). Kde je mapa červenější, tam je vyšší pravděpodobnost výskytu vzorku. Tím by se zaplácly dvě mouchy jednou ranou, protože by nemohlo dojít k situaci, kdy se vzorky "nakupí" v určité části pixelu, či jejich rozložení bude naprosto nevhodné. Zároveň však nejsou vzorky rozloženy pravidelně, takže dochází ke zvýšení účinnosti AA (jak jsem zmiňoval v předchozích dílech, lidské oko je citlivé na pravidelnost, takže pokud není vzorek pravidelný, dochází k převodu aliasu na bílý šum, který oko nedokáže zachytit).



Pozice vzorků by byla generována náhodně, ale pravděpodobnost umístění vzorku by byla nejvyšší v okolí pozice vzorku při RGAA (na obrázku režim 4x). Čím sytější barva, tím vyšší pravděpodobnost výskytu pozice vzorku.



Tímto jsem probral algoritmy používané společnostmi 3Dfx, nVidia, Matrox, PowerVR, XGI, ATi a 3DLabs. Poslední díl článku bude obsahovat celkové srovnání všech prezentovaných metod.





Předchozí Pokračovat...





© no-X 2004
akt. 09-03-2004
hlavní stránka