Top Banner
Anti – Aliasing Anti – Aliasing Ondřej Burkert Ondřej Burkert atrey.karlin.mff.cuni.cz/ atrey.karlin.mff.cuni.cz/ ~ondra/ ~ondra/ stranka stranka
17

Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Jun 18, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Anti – AliasingAnti – Aliasing

Ondřej BurkertOndřej Burkert

atrey.karlin.mff.cuni.cz/atrey.karlin.mff.cuni.cz/~ondra/~ondra/strankastranka

Page 2: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

ÚvodÚvodCo je to anti - aliasing ?Co je to anti - aliasing ?

Aliasing Aliasing = vznik artefaktů v důsledku podvzorkování při vzorkování = vznik artefaktů v důsledku podvzorkování při vzorkování (sampling) obrazu(sampling) obrazu

ppodvzorkováníodvzorkování = příliš vysoká frekvence dat vzhledem k vzorkovací = příliš vysoká frekvence dat vzhledem k vzorkovací frekvenci frekvenci

vzorkovací frekvence musí být alespoň 2x větší než frekvence dat vzorkovací frekvence musí být alespoň 2x větší než frekvence dat ((Shannonův teorémShannonův teorém))

ppodvzorkování způsobuje rušivé efekty (odvzorkování způsobuje rušivé efekty (jaggiesjaggies, , MoireMoire)) Anti – aliasing Anti – aliasing

metody na odstranění nesrovnalostí způsobených podvzorkovánímetody na odstranění nesrovnalostí způsobených podvzorkování TechnikyTechniky

no – filterno – filter pre - filteringpre - filtering post - filteringpost - filtering

uniformníuniformní Stochastický – JitterStochastický – Jitter

Page 3: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

TechnikyTechniky

Pre-filteringPre-filtering intenzita/barva pixelu se spočítá přes zastoupení jednotlivých segmetů v intenzita/barva pixelu se spočítá přes zastoupení jednotlivých segmetů v

pixelu váženo plouchou, kterou zabírajípixelu váženo plouchou, kterou zabírají výpočetně náročnévýpočetně náročné

Uniformní pUniformní post-filteringost-filtering zvýšení vzorkovací frekvence (rozlišení)zvýšení vzorkovací frekvence (rozlišení) filtracefiltrace rekonstrukcerekonstrukce nevýhodynevýhody

špatné pro malé objektyšpatné pro malé objekty paměťové nárokypaměťové nároky problém jen odsunut do vyšší frekvenceproblém jen odsunut do vyšší frekvence

výhodyvýhody jednoduchá implementacejednoduchá implementace

Page 4: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Stochastický post - filteringStochastický post - filtering pozice vzorků je náhodně pozměněna (jitter)pozice vzorků je náhodně pozměněna (jitter) lidské oko lépe vnímá šum než aliasinglidské oko lépe vnímá šum než aliasing nevýhodynevýhody

nefunguje dobře u paralelních výpočtůnefunguje dobře u paralelních výpočtů výhodyvýhody

vyšší frekvence nahrazeny šumemvyšší frekvence nahrazeny šumem rychlejšírychlejší

Page 5: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Algoritmy pro kreslení přímkyAlgoritmy pro kreslení přímky

Gupta-Sproull Gupta-Sproull Fujimoto-IwatFujimoto-Iwataa Xiaolin WuXiaolin Wu

Page 6: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Obecné předpokladyObecné předpoklady

Oba popisované algoritmy předpokládají Oba popisované algoritmy předpokládají náležení přímky do prvního oktanunáležení přímky do prvního oktanu

To se snadno zařídí prostřednicvím symetriíTo se snadno zařídí prostřednicvím symetrií

Page 7: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Gupta – Sproull (1981)Gupta – Sproull (1981)

Algoritmus pracuje s konvolučním filtrem tvaru Algoritmus pracuje s konvolučním filtrem tvaru kužele (další varianty krychle, Gaussian)kužele (další varianty krychle, Gaussian)

Tvar kuTvar kužele zvolen, vzhledem k chování CRT žele zvolen, vzhledem k chování CRT monitorumonitoru

Střed kužele je roven středu počítaného pixelu, Střed kužele je roven středu počítaného pixelu, intenzita barvy pixelu závisí na ploše průniku kužele a intenzita barvy pixelu závisí na ploše průniku kužele a kreslené přímkykreslené přímky

Ve sloupci jsou 3 pixelyVe sloupci jsou 3 pixely Výpočet se urychluje předpočítáním si tabulky hodnot Výpočet se urychluje předpočítáním si tabulky hodnot

pro jednotlivé druhy průmětů, tabulka je pro jednotlivé druhy průmětů, tabulka je parametrizovaná úhlem a vzdálenostíparametrizovaná úhlem a vzdáleností

Page 8: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování
Page 9: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

……

Algoritmus hodně záleží na volbě velikosti konvolučního filtru Algoritmus hodně záleží na volbě velikosti konvolučního filtru a stupňů intenzitya stupňů intenzity

Další možné vylepšení: Další možné vylepšení: readbackreadback Barva pixelu je zohledněna i vzhledem k barvě pozadí a okolních Barva pixelu je zohledněna i vzhledem k barvě pozadí a okolních

pixelůpixelů Řeší rozumně protínání přímekŘeší rozumně protínání přímek Hodně časově náročné – časté přístupy do pamětiHodně časově náročné – časté přístupy do paměti

Page 10: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Příklady vlivu nastaveníPříklady vlivu nastavení

Page 11: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

WuWu’s ’s algorithm (1991)algorithm (1991)

Mnohem jednodušší a efektivnější než Gupta-SproullMnohem jednodušší a efektivnější než Gupta-Sproull Založen na úpravě Bresenhamova algoritmu pro Založen na úpravě Bresenhamova algoritmu pro

kreslení přímkykreslení přímky Snadno implementovatelný i hardwarověSnadno implementovatelný i hardwarově Používá proměnou určující vzdálenost středu pixelu Používá proměnou určující vzdálenost středu pixelu

od středu přímky k určení intenzity/barvyod středu přímky k určení intenzity/barvy Kreslí místo jednoho pixelu dva, součet intenzity Kreslí místo jednoho pixelu dva, součet intenzity

dává jednadává jedna Vystačí s operacemi sčítání a bitovými posunyVystačí s operacemi sčítání a bitovými posuny

Page 12: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Nástin algoritmuNástin algoritmu I(x0,y0)=I(x1,y1)=I; I(x0,y0)=I(x1,y1)=I; //pocatecni body//pocatecni body D=0;D=0; d=[k2^n+0.5]; d=[k2^n+0.5]; //dolni cela část//dolni cela část, de facto obdoba DDA algoritmu, de facto obdoba DDA algoritmu while (while (x0<x1x0<x1){){ //postupuji z obou stran//postupuji z obou stran dokud nedojdu doprost dokud nedojdu doprostřředed x0+=1;x0+=1; x1-=1;x1-=1; D+=d;D+=d; if (D overflow)if (D overflow){ { //D presahne mez, posunu linku o pixel nahoru po souradnici y//D presahne mez, posunu linku o pixel nahoru po souradnici y y0+=1;y0+=1; y1-=1;y1-=1; }} I(x0,y0)=I(x1,y1)=D div 2^(n-m); I(x0,y0)=I(x1,y1)=D div 2^(n-m); //prvnimu pixelu jeho stupen sedi//prvnimu pixelu jeho stupen sedi //n je pocet bitu D, m je pocet stupnu sedi//n je pocet bitu D, m je pocet stupnu sedi //intenzita je dana m nejvyznamejsimi bity D//intenzita je dana m nejvyznamejsimi bity D I(x0,y0+1)=I(x1,y1-1)=I(x0,y0) doplnek;I(x0,y0+1)=I(x1,y1-1)=I(x0,y0) doplnek; //druhemu priradim komplement hodnoty prvniho pixelu//druhemu priradim komplement hodnoty prvniho pixelu //I(x,y)=i <=> putpixel(x,y,i)//I(x,y)=i <=> putpixel(x,y,i) i..intenzita pixelui..intenzita pixelu }}}}

Page 13: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Dodatky k algoritmuDodatky k algoritmu D … diference je rD … diference je reeálné číslo s fixní desetinnou álné číslo s fixní desetinnou

čárkou a velikostí rovnou velikosti slova stroječárkou a velikostí rovnou velikosti slova stroje d … posun vzhledem k ose y (posun k x je 1)d … posun vzhledem k ose y (posun k x je 1) Konce přímek: v případě neceločíselných hodnot Konce přímek: v případě neceločíselných hodnot

počátku a konce… pomocí poměrného přesahu počátku a konce… pomocí poměrného přesahu poslední integerové hodnoty x-ové soořadniceposlední integerové hodnoty x-ové soořadnice

Přímky kratší jednoho pixelu – intenzita určena Přímky kratší jednoho pixelu – intenzita určena poměrem délky a velikosti pixelupoměrem délky a velikosti pixelu

Page 14: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

Srovnání Gupta-Sproull x WuSrovnání Gupta-Sproull x Wu Gupta-SproullGupta-Sproull

Lepší výsledkyLepší výsledky Přímky jsou trochu Přímky jsou trochu

rozmazanějšírozmazanější Výpočetně náročné Výpočetně náročné

(výpočet tabulky)(výpočet tabulky) Neošetřuje konce přímekNeošetřuje konce přímek

WuWu RychlejšíRychlejší Jednodušší (jen přičtení a Jednodušší (jen přičtení a

bitový posun)bitový posun)

Benchmark data: Pentium III 450Mhz, Visual C++ 6.0 Release Build, Default Maximum Speed Optimization...

Algorithm Lines Drawn (x1000) (s) Lines Per SecDDA 1600 504.476 3171.608Bresenham 1600 80.446 19889.117Wu 1600 72.895 21949.378EFLA Variation E 1600 63.801 25077.97

Page 15: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

VyužitíVyužití

Oba algoritmy se dají s úspěchem použít i na Oba algoritmy se dají s úspěchem použít i na vykreslování anti-aliasovaných kružnic a elips, vykreslování anti-aliasovaných kružnic a elips, pro vykreslování polygonů je třeba algoritmy pro vykreslování polygonů je třeba algoritmy příslušně upravit.příslušně upravit.

Při vykreslování na obrazovku se občas Při vykreslování na obrazovku se občas používá několik algoritmů a jejich nastavení používá několik algoritmů a jejich nastavení najednou a postupně se zlepšuje kvalita obrazunajednou a postupně se zlepšuje kvalita obrazu

Page 16: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

OblastiOblasti využitívyužití

Prakticky ve všech oblastech grafikyPrakticky ve všech oblastech grafiky FraktályFraktály Renderování polygonů Renderování polygonů Ray – tracingRay – tracing Mapování texturMapování textur Video (blur)Video (blur) Temporary antialiasingTemporary antialiasing

Page 17: Anti – Aliasing - Computer Graphics Groupcgg.mff.cuni.cz/~pepca/ref/Antialiasing.pdf · Úvod Co je to anti - aliasing ? Aliasing = vznik artefaktů v důsledku podvzorkování

ZdrojeZdroje Graphic Gems III., s. 349-354Graphic Gems III., s. 349-354 Fundamental Algorithms for Computer Graphics, Fundamental Algorithms for Computer Graphics,

s. 113-133s. 113-133 Computer Graphics, July 1991Computer Graphics, July 1991 Computer Graphics Techniques, 131-159Computer Graphics Techniques, 131-159 www.www.whisqu.se/per/docs/graphics75.htmlwhisqu.se/per/docs/graphics75.html www.www.heraklesherakles..zcuzcu/education//education/apgapg_2002_2003/_2002_2003/hradekhradek/html//html/

AliasingAliasing.html.html http://www.edepot.com/algorithm.html http://www.edepot.com/algorithm.html