2)...
Sparse AA a MSAA, to se nevylučuje, každé je označení pro něco jiného (např. jako slova motorka a yamaha - motorka může být yamaha, yamaha může být motorka, ale stejně tak obě slova a jejich významy mohou existovat i v jiné souvislosti)
Takže... existují dva nejběžnější typy AA a to je supersampling (SS, SSAA) a multisampling (MS, MSAA). Supersampling je v podstatě rendering, kdy každý vzorek má svojí vlastní barvu i z-hodnotu, lidsky řečeno, že každý vzorek je v podstatě jakoby plnohodnotný pixel, takže se na jeho vykreslení konzumují stejné prostředky, jako při běžném renderingu, jen ve větší míře. Dá se říct, že supersampling je (s trochou nepřesnosti) rendering ve vyšším rozlišení + zmenšení.
Multisampling naopak nepočítá pro každý vzorek barvu, ale porovnává polohy vzorků podle hran polygonů; pokud se všechny vzorky jednoho pixelu nacházejí na jednom polygonu, je všem přiřazena jedna barva (v podstatě je bez jakýchkoli úprav zachována barva pixelu = MSAA nemá vliv na plochu textury, ponechá ji beze změny), pokud se naopak pixel nachází na hraně polygonu a některý ze vzorků zasáhne na sousedící polygon, je pro něj určena barva podle sousedního polygonu a následně jsou barvy všech vzorků zprůměrovány a výsledkem je barva zobrazeného pixelu (tohle platí vlastně i pro SS, ale tam se to provede na všech pixelech z celé scény bez ohledu na tom, kde jsou)
Stručně řečeno, MSAA ovlivní hrany, SSAA celý obraz.
Sparse AA, možná korektněji řečeno sparse-grid AA je označení pro jeden z typů rozložení AA vzorků. Nejběžnější jsou ordered (uspořádaný), rotated (jakoby pootočený), sparsed a třeba stochastic (náhodný). Za vhodnější rozložení se považuje takové, které má maximální účinnost v úhlech blízkých horizontále a vertikále (na kterých jsou "zuby" v obraze nejvíce vidět -
viz hrana označená červeně). To se dá snadno zjistit už pohledem na rozložení vzorků - pokud chceš maximální účinnost v úhlech blízkých horizontále, nesmí se stát, aby na jedné horizontále leželo více vzorků (totéž platí i pro vertikálu). Když se podíváš na rozložení ordered grid - třeba 4x (to máš stejný rozložení jako číslo čtyři na hrací kostce - jen pro představu), tak
když skrz libovolný vozrek protneš horizontálu, tak tato horizontála bude procházet celkem dvěma vzorky, tzn. výsledná účinnost bude špatná. Když ale vzorky pootočíme (cca o 25°), tak se dostaneme do situace,
kdy každý vzorek má vlastní horizontálu i vertikálu a účinnost je tedy maximální. Obzvlášť výhodné, je když je vzdálenost mezi těmito horizontálami/vertikálami (dál jen H/V) stejná (asi
takhle).
Toto rozložení je velice výhodné, první ho používalo 3Dfx, pak i ATi, S3 a nakonec na něj přešla i nVidia (ale jen u multisamplingu, pro SS používá stále oredered gird kvůli tomu, že ho lze používat i bez HW podpory ze strany čipu). Složitější situace ale nastane, když použijeme víc než 4 vzorky (tedy třeba 6, 8, 16, 32) atp. Protože kdybys postupoval stejně a vzorky si rozkreslil do čtverečku (či obdélníku) a ten pak pootočil, tak sice dostaneš tutéž ideální účinnost na hranách polygonů blízkých horizontále/vertikále, ale zároveň si musíš uvědomovat, že jsi tím pootočením vlastně jen posunul slabinu, která se projevovala u H/V na trochu jiný úhel (tzn. pokud bychom vzorky pootočili třeba o 15°, tak i úhel, na kterým má toto rozložení nejnižší účinnost, posuneme o 15°) A u takto vysokého množství vzorků je zbytečné se soustředit pouze na H/V, protože existuje řešení, jak dobře zvládnout i ostatní úhly. A tohle řešení je vzorky neotáčet (představ si rozložení šesti vzorků, které by vypadalo jako šestka na hrací kostce - když ho otočíš, tak sice H/V budou OK, ale zároveň ti tři a tři vzorky leží na jedné přímce, tzn. jsou jakoby "v zákrytu" a v tomhle úhlu pak mají nižší účinnost - tzn. pouhé otočení není v případě >5 vzorků ideální řešení), ale místo otočení je rozhodit tak, aby vzdálenosti horizontál/vertikál byly také stejné (t to pravidlo tedy zůstává), ale zároveň žádné tři vzorky neležely na stejné přímce. Tzn. jako sparsed se označuje takové rozložení, které vypadá na první pohled nepravidelně, ale vzdálenosti mezi vzorky (resp. H/V, které jimi prochází) jsou stejné. To používá ATi při AA 6x a všech vyšších režimech CF.
Čím více vzorků máš, tím více kombinací pro sparsed grid s nimi můžeš vymyslet - je to v podstatě hra se šachovnicí nebo se čtverečkovaným papírem. Pokud chceš nakreslit sparsed grid 8x, vyznač si plochu 8x8 čtverečků a do každého sloupečku/řádku umísti (vybarvi) přesně jeden čtvereček. V žádném nesmí být dva. A zároveň by se nemělo stát, že by tři či více čtverečků leželo na jedné přímce (tomu se ale leckdy nelze vyhnout). Zároveň by pak vykrytí celého povrchu mělo být co nejrovnoměrnější.
Pro jeden počet vzorků takhle můžeš vymyslet několik možných rozložení a které z nich je nejvýhodnější, tím se zabývají pánové ve většině velkých společností, které mají co dělat s grafikou. Není to nic jednoduchého, testuje se to obvykle v praxi a výsledky ani nemusejí být jednoznačné - co je lepší v jednom případě, může být jindy horší...
Tady je pro zajímavost ukázka, kolik kombinací můžeš dostat ze šesti vzorků:
a tady ukázky těch vhodnějších způsobů rozložení pro různé počty vzorků:
Pokud jsi čekal odpověď v jedné větě, tak: sparse AA značí rozložení vzorků s maximalizovanou účinností, která je dána určitou nepravidelností v jejich rozložení
/edit: ty poslední schémata jsou od uživatele Xmas z B3Df