r420-a-nv40-full-scene-antialiasing
Hardware Článek R420 a NV40 - Full-Scene AntiAliasing

R420 a NV40 - Full-Scene AntiAliasing | Kapitola 5

Souček Jiří

Souček Jiří

19. 5. 2004 00:00 33

Seznam kapitol

1. 4 roky s AntiAliasingem 2. OverSampling, SuperSampling, MultiSampling 3. GeForce: FX vs. 6800 4. Radeon X800 5. Radeon X800 - pokračování 6. Shrnutí a Závěr

V těchto dnech tomu budou právě čtyři roky, co byla uvedena první grafická karta s hardwarově implementovanou funkcí vyhlazování hran FSAA (Full-Scene AntiAliasing). Od této doby se dříve jednoduché metody vyhlazování zubatých hran v 3D obraze posunuly do oblasti složitých matematicko-logických operací. Cílem je dosáhnout precizní a ostrý obraz bez velkého dopadu na výkon 3D.

Reklama

Temporal AntiAliasing

Krom tohoto se ATi rozhoupala i k trochu radikálnějšímu kroku a tím je implementace něčeho, co ATi nazvala Temporal AntiAliasing. Jako Temporal AntiAliasing (dále TAA) byl původně označován efekt Motion Blur, který minimalizuje dopad diskrétního snímkování. Tím se ale zabývat nebudeme. Temporal AntiAliasing není také žádnou novinkou, na papíře už existuje několik let. Princip se pokusím vysvětlit na co nejjednodušším modelu. 

OG AntiAliasing (resp. jeho rozložení vzorků) je možné praktikovat dvěma způsoby. Horizontálním a vertikálním. Při horizontálním jsou vzorky řazeny vodorovně (v praxi toho lze snadno dosáhnout renderingem scény ve dvojnásobném horizontálním rozlišení a následovným zmenšením obrazu na požadovaný rozměr). Tento režim je vhodný pro scény, kde převažují svislé linie, protože je dokáže slušně vyhladit. Na vodorovné linie vůbec výhodný není (pozice vzorků se ve vodorovném směru překrývají), protože jeho účinnost je na nich prakticky nulová.

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

Druhý způsob je vertikální rozložení. Nebudu to protahovat, vše je opačně, než v předchozím odstavci, takže slušná účinnost na linie blízké horizontále, mizivá na linie blížící se vertikále.

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

Mohlo by se zdát, že s touto "mizernou" výbavou není možné dosáhnout obrazu, který by byl vyhlazen v obou směrech. Ale což použít pro jeden renderovaný snímek první algoritmus (horizontální) a pro druhý snímek ten druhý algoritmus (vertikální) a takto je při renderingu střídat! Pokud bude snímková frekvence dostatečně vysoká, budou následující snímky splývat a obraz bude vypadat, jako by byl vyhlazen v obou směrech, horizontálně i vertikálně; prostě jako kdyby byl použit FSAA 4x:

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

A takto nějak by vypadalo výsledné rozložení vzorků. Pokud bychom si ale udělali screenshot, bylo by na něm patrné jen vyhlazení v jednom směru (podle toho, zda bychom "típli" sudý, nebo lichý snímek).

Situaci jsem zjednodušil, jak to jen šlo. ATi totiž při TAA využívá speciální rozložení vzorků, aby jejich prolnutí dávalo maximálně výhodné pokrytí pixelu:

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

Velké plus temporálního AntiAliasingu je, že s výkonnostním dopadem režimu "n" dokáže podat kvalitu režimu "2*n" (výkon je jako při FSAA 2x, ale kvalita jako při FSAA 4x). Ovšem i zde je jeden háček. Je zapotřebí vysoká snímková frekvence. Pokud by totiž byl framerate příliš nízký, dojde k nepříjemnému defektu: Sudé a liché snímky nebudou vizuálně splývat a rozdíly mezi nimi budou pozorovatelné, jako "zrnění" či "šum" na hranách objektů. Nejvhodnější řešení je stanovit mezní framerate a poklesu pod tuto hranici TAA nahradit standardním režimem FSAA (bude nižší kvalita FSAA, ale nedojde ke zmíněným defektům). Tento framerate však musí být dosažen se zapnutou vertikální synchronizací, neboť pouze tak lze zajistit, aby se na monitoru skutečně zobrazovaly celé liché a celé sudé snímky.

ATi slíbila implementaci TAA na všechny DX9 kompatibilní Radeony (9500+). To samozřejmě není problém. Teoreticky je to možné na jakékoli kartě, která umí AntiAliasing (prosté střídání rozložení vzorků mezi sudými a lichými framy by neměl být problém). Abych byl přesný. TAA je možné provozovat i na kartách, které AntiAliasing vůbec neumějí! Je k tomu zapotřebí jakási slušná HW výbava (rozebírat to nebudu, od toho tu tentokrát nejsme), ale možné to je. Stačí, aby karta byla schopna měnit pozici, ze které je odebírán barevný vzorek. Následovně:

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

Vzorek pro liché snímky třeba z levého horního rohu pixelu, pro sudé pak z pravého dolního.

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

Když pak oba prolneme, dostáváme velice efektivní Rotated Grid AntiAliasing 2x, který je kvalitativně srovnatelný s Ordered Grid AntiAliasingem 4x (OG AA 4x používala např. PowerVR na Kyru a nVidia na sérii GeForce po řadu FX). Takže BEZ JAKÉKOLI ztráty výkonu je možné získat obraz kvalitativně srovnatelný s obrazem s FSAA OG 4x !!!

R420 a NV40 - Full-Scene AntiAliasing
i Zdroj: PCTuning.cz

Jakého úspěchu se TAA dočká se teprve dozvíme. Krom ATi se ho rozhodli implementovat i vývojáři softwarové podpory pro karty 3Dfx (konkr. pro čipy VSA-100) a musím oznámit, že projekt je již hotový. Více informací a TAA Glide ke stažení zde.

Opět bych chtěl poopravit jeden "drb", který tvrdí, že při TAA je v méně náročných scénách, kdy je framerate na vysokých hodnotách, použito větší množství vzorků (vyšší hodnota FSAA) a v případě náročnějších scén se opět hodnota snižuje. To není pravda, počet vzorků je stále stejný. Popsaná technologie je tzv. Dynamic AntiAliasing (dynamický anti-aliasing), o kterém už bylo několikrát mluveno, ale do reálu se ještě nedostal.

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama