Nvidia představila Adaptive Temporal Antialiasing využívající ray tracing
Nová metoda anti-aliasingu je poměrně komplexní řešení, které vychází z temporálního konceptu, tedy z vyhlazování (primárně) na bázi následujících snímků. Temporální složka algoritmu je prostá. Pokud vykreslujeme nějakou linii a snímek od snímku použijeme jinak rozložené vzorkování, vznikne řada snímků, jejichž vzájemným prolnutím získáme vyhlazenou linii.
Problém nastává, když ve scéně dojde k pohybu. Pokud je linie v každém následující snímku na trochu jiném místě, prostě prolnutí nestačí. Pokud ale využijeme vektory pohybu, můžeme posun mezi jednotlivými snímky eliminovat a získat opět vyhlazenou linii.
Pokud, jak je ale typické ve hrách, hýbeme i celým záběrem (např. se hráč rozhlíží), pak nám v aktuálním snímku bude chybět kus záběru, který byl v předchozím snímku a temporální koncept se v této části snímku nebude mít čeho chytit. Pro odhalení těchto částí obrazu používá Nvidia tzv. konzervativní segmentační masku. Pro oblast, která v předchozím snímku chybí, je pak vyhlazení provedené stávající metodou FXAA. Podle Nvidie i při rychlém pohybu s obrazem dochází k poklesu výkonu v důsledku FXAA méně než o 15 % oproti tomu, pokud by se FXAA použil k vyhlazení celého obrazu.
Konzervativní segmentační maska rozlišuje 3 stavy:
1. červeně - oblast, která chybí v předchozím snímku
2. modře - oblast, která je v předchozím snímku
3. žlutě - oblast, která je v předchozím snímku, ale je pravděpodobná chyba TAA
Krom toho, zda je či není určitý úsek obrazu zahrnut i v předchozím snímku, rozlišuje segmentační maska ještě třetí stav. Ten se týká částí obrazu, kde segmentační heuristika odhalila vyšší pravděpodobnost chyby temporálního konceptu. To se může stát třeba v situaci, kdy se neposouvá pouze záběr scény (=hráč se rozhlíží), ale navíc se ještě nějaký objekt ve scéně změní jinak než posunem. Např. se pootočí, takže se změní úhel záběru a hrany objektu nebudou v jednom snímku oproti druhému sedět.
Pro tyto pixely je pak použit ATAA (adaptive temporal anti-aliasing) algoritmus, kdy je pro daný pixel proveden ray tracing odpovídající vzorkům MSAA 2×, 4× nebo 8× a tím dopočteny údaje pro vyhlazení.
Ve výsledku tedy vzniká obraz, jehož různé části mohly vyhladit tři různé algoritmy anti-aliasingu. I kdybyste udělali screenshot stejného záběru, může být výsledek mírně vizuálně odlišný na základě toho, jestli jste během screenshotu nehýbali se záběrem, nebo jestli k pohybu došlo. Na základě toho se totiž uplatní odlišné algoritmy s odlišným vizuálním výsledkem. Což mimochodem znamená, že praktické otestování kvalit nového anti-aliasingu bude velmi problematické, protože se asi příliš recenzentů nebude zabývat tím, jak vytvořit dva stejné závěry tak, aby jeden screenshot vznikl v klidu a druhý v pohybu, ale zároveň obsahoval záběr identický s prvním :-).
Srovnání kvality různých metod antialiasingu
Proto je i velmi obtížné hodnotit vizuální výsledky, které Nvidia předložila. Některé vypadají dobře, některé velmi dobře. Na druhou stranu jako referenci přiložila super-sampling, ovšem - jak je patrné z prostředního detailu - jde o tzv. ordered-grid super-sampling, tedy vizuálně nejméně kvalitní řešení. Zajímavější by bylo srovnání s alespoň rotated-grid super-sampling, byť je pochopitelné, že Nvidia má zájem na tom, aby její nový algoritmus vypadal ve srovnání co nelépe.
Nvidia - s ohledem na podporu raytracingu ve hrách a výkonu / možností aktuálního hardwaru - nepočítá s praktickým nasazením ATAA ve hrách v dohledné době.