Full-Scene AntiAliasing - dodatek 1




    Od uvedení závěrečného dílu série FSAA ještě neuběhly ani tři týdny a už jsou tu opět další novinky. Protože se blíží oficiální uvedení další generace vizuálních procesorů (nVidia nV40, ATi R420), přichází velké množství nových informací. Nechci, aby následující informace vyzněly jako chvála či naopak kritika některé společnosti; jejich zmínka je ale důležitá - pochopíte proč.

Prvním faktem je, že ATi R420 pravděpodobně nebude plně podporovat shadery 3.0; nV40 pravděpodobně ano. Společnost nVidia se tedy rozhodla tohoto náskoku využít a předvést některé novinky v podobě záznamů nových technologických dem. Možná nebyly vybrány nejvhodnější ukázky, nebo shadery 3.0 nepřinášejí prakticky nic nového, ale mám pocit že téměř vše jsem už viděl (Matrox, ATi). Téměř. Zaujala mě technologie Deferred Shading, která urychlí rendering, neboť budou (mj.) zpracovávány jen ty stíny, které budou ve výsledné scéně viditelné. V praxi by se mělo ušetřit na geometrických výpočtech. Nyní ale zpět k hlavnímu tématu.

Dynamic AntiAliasing (DAA):

Nejde o nový typ FSAA, ale pouze o automatickou regulaci úrovně antialiasingu. Samotná regulace má vycházet z aktuální snímkové frekvence. Jde o zajímavý nápad, ale v praxi se může objevit řada problémů. Vezměme to popořadě:

statické objekty: v případě, že jsou na scéně přítomny nějaké objekty, které se nemění (např. nějaké 3D logo), pak změna úrovně FSAA bude mít za následek změnu vzhledu tohoto objektu, který by měl být neměnný (u klasických pohybujících se objektů tento problém není, neboť během pohybu není oko schopno tyto změny zaznamenat). Tedy; při změně FPS dojde ke změně úrovně FSAA, čímž se bude měnit zubatost hran - takže náš objekt bude stále měnit strukturu okrajů, což samozřejmě bude působit velmi rušivě.

úroveň FSAA: pokud bychom se měli soustředit na samotné úrovně FSAA, které budou podle aktuální snímkové frekvence měněny, pak dojdeme k závěru, že jako maximum můžeme použít cca např. 6 vzorků, nižší hodnotu 4 vzorky a nejnižší 2 vzorky. To je ale celkem chudý výběr; nelze tedy zajistit, aby byla kolísavost snímkové frekvence vyrovnána úměrně k úrovni antialiasingu. (nemožnost homogenně vyhladit kolísavost FPS i aliasing)

mezistupně: nejjednodušší řešení je použít neceločíselné vzorkování, tedy postupné přechody mezi jednotlivými úrovněmi FSAA. Neceločíselné vzorkování je ale ve své podstatě sdílení vzorků mezi sousedními pixely, tedy něco jako např. Quincunx, nebo Volari FSAA. Výsledkem by tedy byla proměnlivá ostrost obrazu během různě náročných scén, což je neakceptovatelné.

praxe: další potencionálním problémem je benchmarkování. Není to problematika implementace DAA, ale nemožnost srovnání dvou různých karet po stránce výkonu s aktivovaným DAA. Zatímco na jedné kartě může být framerate nižší, ale může být použit vyšší stupeň FSAA (~vyšší kvalita obrazu), druhá karta bude po stránce čísel vypadat lépe, neboť poskytla vyšší framerate. Toto dává obrovské možnosti v cheatování v ovladačích, protože není možné ukládat všechny snímky vyrenderované v průběhu celého benchmarku (pro porovnání kvality). Tím by byl značně ovlivněn průběh celého benchmarku (zatížení systému ukládáním snímků by znehodnotilo objektivitu benchmarku). Ve výsledku by pak mohlo jít o další marketingový tah, neboť vyšší úrovně vyhlazování by nemusely být (kvůli cíleným výsledkům) v testu vůbec použity.

MultiSampling vs. Deferred Shading: Samotná podstata MultiSamplingu znemožňuje používat Deferred Shading. Ten profituje právě z absence výpočtů, které jsou pro realizaci MultiSamplingu nutné. Pokud tento problém nebude vyřešen, nebude možné tento (nejrozšířenější) AntiAliasing (a z něj vycházející dynamický antialiasing) praktikovat.

řešení č.1: nepoužívat AntiAliasing (samo o sobě ujetost)

řešení č.2: používat SuperSampling - propastný pokles výkonu. Legrace je, že Deferred Shading je technologie, která má zrychlit rendering. Jenže SuperSampling toto plus setře.



    Dynamický antialiasing na mě působí příliš nedořešeně na to, aby mohl být kvalitně implementován (či v ovladačích aktivován) okamžitě po nástupu přicházející generace vizuálních procesorů. Na jeho realizaci se ale podílejí oba grafičtí giganti, takže z toho snad nakonec něco bude.



    Mě osobně celkem překvapuje, že dosud nedošlo na implementaci FSAA podle rozlišovací schopnosti lidského oka. To totiž je schopné podrobně rozlišovat jen ten objekt, který sleduje (okolí vnímá v nižším rozlišení). Vzhledem k tomu, že při majoritě her je sledován primárně střed obrazovky, bylo by možné uvažovat o metodě, která by používala intenzivnější algoritmus pouze ve středu obrazu a po okrajích by pak stačila nižší úroveň vyhlazování:





    Pokud bychom použili na okraje (tmavošedé) vyhlazování 4x a na střed (světlý) 8x, zvýšil by se počet vzorků na celé scéně jen o 25% (vyznačený střed zabírá jen 25% celkové plochy!), přičemž subjektivní kvalita obrazu by byla dvojnásobná (8x oproti 4x). Výkonnostní rozdíl mezi standardním FSAA 4x a tímto kombinovaným 4x/8x by byl o 50% menší, než je dnešní rozdíl mezi standardním režimem 4x a 6x. Tento systém by ale bylo možné používat jen přes multisampling, neboť supersampling ovlivňuje i ostrost textur a ta by vizuálně prozradila hranice mezi režimem 4x a 8x...



Pokud pominete moji závěrečnou odbočku, pak mi jako hlavní zdroj informací sloužil tento whitepaper. Doporučuju alespoň zběžně prolistovat, ať víte, co to na nás zase chystají :-)





Whitepapers...
Dynamic AntiAliasing Whitepaper

Whitepaper informující o směru vývoje FSAA v roce 2004 se zaměřením na dynamický antialiasing
(540kB)




Předchozí





© no-X 2004
akt. 07-04-2004
hlavní stránka