Jak vyhladit obraz (úvod do antialiasingu)

  • 3
V čem spočívá technika zpracování obrazu antialiasing, zkráceně AA? Je to metoda zpracování výstupního obrazu, která potlačuje chyby při zobrazování. Kdy se používá a jaké má výsledky?

Antialiasing (česky vyhlazování) je odvozen od pojmu aliasing. Aliasing je jev, který se vyskytuje v počítačové 3D grafice od nepaměti, a to proto, že žádný sebelepší počítač nedokáže operovat s absolutně nekonečnými a přesnými čísly. Vzniká v okamžiku, kdy se při vzorkování zobrazí do oblasti s vyšší frekvencí dat data s frekvencí nižší. Tento případ nastává například v okamžiku přechodu hrany jednoho objektu na pozadí, které se za hranou objektu nachází. Aliasing můžeme také chápat jako podvzorkování - downsampling. Chyby, které podvzorkováním vznikají, se nazývají jaggies a moiré. Zatímco jaggies jsou způsobené grafickou kartou a její nepřesností, moiré je chyba monitoru.

 moire aliasing

                                      Moiré                               Jaggies

Antialiasing potlačuje jaggies a zarovnává hrany

A nyní už se dostáváme k samotnému antialiasingu (AA). AA je metoda zpracování výstupního obrazu, která potlačuje jaggies a zarovnává zubaté hrany. Otázka ovšem je, jestli je taková úprava žádoucí a zda nebude mít na výslednou scénu neblahé dopady. Je totiž dost možné, že ve scéně je tak vysoké množství hran, na které se vyhlazování uplatní, že se potom operace může projevit rozostřením obrazu. Takový obraz potom opravdu nevypadá pěkně a AA je lepší raději vypnout.

antialiasing

Bez vyhlazování       S vyhlazováním

AA se v počítačové grafice používá v několika intenzitách. Jde o tyto hodnoty: 2x, 3x Quincunx(pouze nVidia), 4x a nakonec 4x SuperSampling. Logické samozřejmě je, že čím větší je intenzita vyhlazování, tím lépe vykreslená scéna vypadá. Kámen úrazu je ale v tom, že antialiasing působí docela značné ztráty na výkonu grafické karty. Poslední řada grafických čipů (NV40 a R420) představuje docela zdařilý pokus, jak zamezit vysokým poklesům výkonu. Na následujících obrázcích můžete porovnat, jak moc se od sebe jednotlivé stupně antialisingu liší. Renderoval jsem v programu 3dMark 03.

s_00 s_2x s_3x s_4x

s_s4

Jak antialiasing funguje?

Každá hrana je přechod mezi barvou předmětu v popředí a barvou pozadí. Pokud je tento přechod moc prudký, vznikají jaggies. Řešením je tedy tento prudký přechod zmírnit. Realizace probíhá pomocí dopočítávání odstínů barev na hranách a zuby tak opticky zmizí. V současné době se používají dvě různé metody vyhlazování: SuperSampling a MultiSampling.

  • SuperSampling - každá scéna se renderuje několikrát, výsledný obraz je tvořen prolnutím těchto dílčích obrazů
  • MultiSampling - využívá z-bufferu, ze kterého využije pouze postižené hrany, čímž dochází k úspoře výkonu

s_komplet

Poslední obrázek je koláž z testu FSAATest, který je volně stažitelný na internetu. Každý kvadrant byl renderován při použití různých stupňů antialiasingu. Bohužel jsem byl nucen obrázek zmenšit a tak nejsou rozdíly moc patrné. Ale pokud na něj kliknete zobrazí se vám ve své původní velikosti (800x600, BMP, 1,4MB!)

V dohledné době se můžete těšit na článek o filtrovacích metodách grafických karet, speciálně anizotropním filtrování.