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) |
|
|