Uživatel:Krctomas

Z HPM wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Osnova semestrální práce)
Řádka 1: Řádka 1:
=='''Morphological Anti-Aliasing'''==
+
='''Morphological Anti-Aliasing'''=
  
  
==='''Co je Aliasing'''===
+
==='''Aliasing'''===
  
  
Alias je vada v navzorkovaném obrazu (artefakt) způsobená podvzorkováním (porušením Shannonva vzorkovacího teorému). Aliasing je pojem pro vznik artefaktů v důsledku vzorkování. Podvzorkování způsobuje zobrazení vysokých frekvencí do nízkých a tak vznik vizuálně rušivých artefaktů.
+
Aliasing je pojem pro vznik artefaktů v důsledku vzorkování (při převodu spojité informace na diskrétní). Aliasing se vyskytuje u 2D i 3D objektů, nejpatrnější je však při sledování pohubu těchto objektů. S přechodem do trojrozměrného prostředí a s rozmachem 3D akcelerátorů začal vyvstávat čím dál tím akutněji jeden problém. Přestože se hrubá síla grafických karet zvyšovala, nevedlo to k přílišnému zlepšení obrazu. Počítač vytváří 3D objekty jako síť polygonů (malých trojúhelníků), které se následně potahují texturou. Čím je tato síť podrobnější, tím věrnější bude i obraz. Kvalitu obrazu jako takovou lze zlepšit např. zvýšením počtu těchto polygonů, příp. změnou rozlišení. Po vyrenderování celého obrazu v paměti počítače je nutné tento obraz upravit tak, aby mohl být zobrazen na monitoru. K tomu se v dnešní době používá tzv. rasterizace. A právě při tomto procesu dochází ke vzniku tolik nepopulárních zubů a dalších vad v obraze. Podíváme se proto na nejčastější typy artefaktů způsobených aliasingem.
 +
 
 +
 
 +
===='''Jagged Edges  (Zubaté hrany)'''====
 +
 
 +
 
 +
Nejtypyčtější artefakt způsobený aliasingem. Jeho vznik si vysvětlíme na následujícím trojúhelníku. Jeho rozměry jsou přibližně 4x15 pixelů, nicméně jeho strany se přesně neshodují s hranicemi jednotlivých pixelů.
 +
 
 +
[[Soubor:Trojuhelnik1 puvodni.gif|center|541x145px]]
 +
 
 +
 
 +
 
 +
Výsledný obraz po rasterizaci právě proto vůbec neodpovovídá originálu. Obraz byl vytvořen tak, že systém zkontroloval, jakou barvu má střed pixelu (ony červené tečky). Pokud byl střed modrý, obarvil pixel modře. Pokud byl střed bílý, obarvil pixel bíle.
 +
 
 +
[[Soubor:Trojuhelnik2_povykresleni.gif|center|541x145px]]
 +
 
 +
===='''Unconnected lines'''====
 +
[[Soubor:Unconnected_lines.png|thumb|right|Příklad unconnected lines]]
 +
 
 +
 
 +
V případě, že budeme vykreslovat tenké objekty, jako jako jsou například lana na naší lodi či stožáry v dálce, dojde k úplnému rozpadu těchto objektů na kousky. Je to dané tím, že lana jsou tenčí než jeden pixel a nastane situace, kdy je lano mezi dvěma středy pixelů a nevykreslí se. Jenže u druhého pixelu se už lano vykreslí a u třetího zase ne. Tento jev se nazývá Unconnected lines. Pokud půjdeme ještě do většího extrému, mohou jednotlivé objekty začít úplně mizet a zase se objevovat. Tento jev se jmenuje flickering (poblikávání).
 +
 
 +
===='''Moaré'''====
 +
 
 +
[[Soubor:Moire.gif|thumb|left|Příklad Moaré]]
 +
 
 +
 
 +
 
 +
 
 +
Moaré (anglicky moire) je jev, který vzniká při rasterizaci ploch s jemným vzorkem, na které se díváme pod úhlem nebo z dálky. Jde o ono typické zkroucení tenkých rovných linií a podobně. Řešením však není vždy přímo antialiasing, ale také filtrace textur, tedy anizotropní filtrování místo klasického a méně účinného bilineárního / trilineárního. Moaré se vyskytuje i v televizním vysílání - proto jsou pro vystoupení v televizi nevhodné oděvy s drobným vzorkem.
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
[[Soubor:Aliasing.jpg|thumb|right|Porovnání obrazu před a po aplikováním anti-aliasingu]]
 +
=='''Anti-aliasing'''==
 +
 
 +
Anti-aliasing je proces, který zjednodušeně řečeno vyhlazuje hrany v obraze, neboli odstraňuje artefakty vzniklé aliasingem. V místě hrany vloží barevné hodnoty odpovídající průměru barev na jednotlivých stranách hrany. Jde tedy o jakési rozostření hran, v jehož důsledku ale mizí "digitální" ostrost. Anti-aliasing ale také snižuje kontrast, výsledný obraz vlastně rozmazává, a v neposlední řadě je náročný na paměť a výkon grafické karty.
 +
 
 +
 
 +
==='''Oversampling (OSAA)'''===
 +
 
 +
Základní metodou Antialiasingu je Oversampling. Pokud se vrátíme k trojúhelníku z odstavce o zubatých hranách, jistě nás napadne, že čím větší rozlišení, tím přesnější bude výsledný obraz. Při nekonečně vysokém rozlišení bychom i po rasterizaci dostali toreticky stejný trojúhelník jako před ní. Kařdý pixel tedy rozdělíme na čtyři menší a scéna se vyrenderuje ve dvojnásobném rozlišení. Výsledný trojúhelník tvořený ze čtverců vypadá daleko věrněji. Náš návrh v tomto provedení odpovídá 4× AA (každý pixel jsme nahradili čtyřmi menšími):
 +
 
 +
[[Soubor:trojuhelnik3_oversampling.gif|center|541x145px]]
 +
 
 +
Nyní jen zprůměrujeme barvy u každých čtyř sousedních pixelů a scéna se převede zpět do původního rozlišení.
 +
 
 +
[[Soubor:trojuhelnik4_oversampling.gif|center|541x145px]]
 +
 
 +
Výsledek je teď daleko věrnější než původně. Jenže je tu malá nevýhoda. Místo rozlišení 1920 × 1200 px obraz renderujeme v rozlišení 3840 × 2400. Zatížení sběrnice je obrovské, jsou tu velké nároky na paměť a podobně.
 +
 
 +
 
 +
==='''Supersampling (SSAA)'''===
 +
 
 +
Kvůli obrovským nárokům Oversamplingu bylo nutné celý proces optimalizovat. Prvním krokem bylo zmenšení počtu subpixelů na polovinu.
 +
 
 +
[[Soubor:supersampling.gif|left|]]
 +
 
 +
 
 +
 
 +
Všimněte si, že na obrázku má každý pixel jen dvě červené tečky (subpixely), které by šly snadno doplnit na čtyři. Tím bychom dostali původní 4× Oversampling. V praxi však v drtivé většina případů stačí jen dva takto diagonálně umístěné subpixely, přičemž kvalita obrazu se o mnoho nezhorší (obecně platí, že v každém řádku a každém sloupci musí být jeden subpixel). Tím jsme snížili nároky na polovinu a získali jsme 2× Supersampling.
 +
 
 +
 
 +
 
 +
 
 +
Stejně jako v případě optimalizace 4× OAA na 2× SSAA můžeme optimalizovat i 16× Oversampling. V tomto případě už každý pixel dělíme na 16 menších a obraz renderujeme ve čtyřnásobném rozlišení. Po optimalizaci nám však však v každém řadě a sloupci zbude jen jeden subpixel, přičemž kvalita se nezmění (spodní trojúhelník). Tím dostáváme 4× Supersampling, který má stejné nároky na výkon jako 4× Oversampling, ale kvalita je na úrovni 16× Oversampling. Vzhled útvaru se navíc začíná vzdáleně podobat trojúhelníku, který jsme původně chtěli. Samozřejmě je mnoho možností, jak subpixely vybrat a podle toho se rozlišuje mnoho verzí Supersamplingu.
 +
[[Soubor:trojuhelnik4_supersampling.png|center|541x145px]]
 +
 
 +
 
 +
==='''Multisampling (MSAA)'''===
 +
Dnes nejrozšířenější metodou je Multisampling, který používají všechny čipy nVidia od GeForce3 dále. Stejně jako u supersamplingu jsou pixely rozděleny na více subpixelů, ovšem jen ty, které leží na okrajích polygonů, jsou počítány zvlášť (rozuměj jejich barva). Rozlišení je tedy u 4x anti-aliasingu čtyřikrát vyšší, ovšem některé čtveřice subpixelů jsou zpracovávány dohromady.
 +
Když subpixel leží uvnitř polygonu, musí i celý pixel ležet uvnitř a nemusí být tedy vyhlazen. Jeho barva je proto počítána pro všechny elementy zároveň.
 +
Pokud některý ze subpixelů zpracovávaného polygonu leží mimo trojúhelník, je logické, že pixel je okrajový a potřebuje vyhladit. Zde jsou tedy subpixely, které leží v polygonu, počítány nezávisle. Barva zbylých elementů (mimo polygon) je pak počítána až se sousedním polygonem. Vylučuje se tak situace, kdy bude barva subpixelu počítána dvakrát.
 +
Výhody této metody jsou jasné – uvnitř polygonů, kde se nemohou nacházet žádné zoubky, probíhají výpočty pro celý obrazový bod zároveň, protože kdyby byly vykonávány zvlášť pro jednotlivé subpixely, byl by výsledek stejný, ale výkon nižší. Účinek je tedy stejný jako u supersamplingu, scéna je zpracovávána ve vyšším rozlišením, ale s mnohem menším počtem kalkulací.
 +
 
 +
Multisampling je v dnešní době základní a nejpoužívanější typ vyhlazování hran. Ale existuje bezpočet vylepšených verzí, které dále zlepšují kvalitu vyhlazování. Například je to adaptivní antialiasing, který vyhlazuje hrany u průhledných textur či Custom Sampling Aliasing (CSAA; 16× režim u jedné Nvidia karty) od Nvidie a Custom Filter Antialiasing od ATI (CFAA; volitelné filtry).
 +
 
 +
 
 +
=='''Morphological Anti-Aliasing'''==
 +
 
  
 +
Morphological Anti-Aliasing (MLAA) neboli morfologické vyhlazování od společnosti AMD je speciální filtr počítaný přes GPU, který se aplikuje až na vyrenderovaný snímek v paměti grafické karty těsně před odesláním na monitor.
  
==='''Anti-aliasing'''===
+
Pro zjednodušené vysvětlení principu MLAA uvažujme pouze černobílý obrázek:
  
  
Anti-aliasing je proces, který zjednodušeně řečeno vyhlazuje hrany v obraze, neboli odstraňuje artefakty vzniklé aliasingem. V místě hrany vloží barevné hodnoty odpovídající průměru barev na jednotlivých stranách hrany. Jde tedy o jakési rozostření hran, v jehož důsledku ale mizí "digitální" ostrost.Viz:
+
[[Soubor:mlaa.png|center|]]
  
  
[[Soubor:Aliasing.jpg]]
 
  
 +
MLAA algoritmus probíhá ve třech základních krocích.
 +
* V prvním kroce algoritmus vyhledá všechny linie, které oddělují černé a bílé pixely.
 +
* V druhém pak v těchto liniích hledá linie tvarované jako L,Z nebo U (viz obrázek). Protože Z i U linie můžeme rozdělit na dvě L, budeme se nadále zabývat pouze L liniemi.
 +
* V posledním kroce nahradíme každou L linii červenou linkou znázorněnou na obrázku níže. Tato červená linka rozděluje pixely na dvě části. Jeho výslednou barvu pak určíme vypočítáním obsahu této části "a", a jeho dosazením do následující rovnice:
  
===='''Metody anti-aliasingu'''====
+
c_výsledná=(1-a)*c_původní+a*c_protější
 +
 +
kde c_původní je původní barva buňky a c_protější je barva na opačné straně barevné linie
 +
barvy vyjadřujeme v intervalu <0,1>, kde 0 je černá, 1 je bílá.
 +
  
 +
např. pro buňku C5 z obrázku níže by platila rovnice:
 +
 +
c_výsledná=(1-1/3)*1+1/3*0=2/3
  
* Oversampling (OSAA)- Zvětšení rozlišení obrazu v násobcích 2^n, přímo úměrné se zvýšením přesnosti.
+
[[Soubor:Lline.png|center]]
* Supersampling (SSAA)- Optimalizovaný Oversampling, počet pixelů je zmenšený na polovinu, nicméně kvalita zůstává téměř stejná.
+
* Multisampling (MSAA)- stejná scéna je vykreslena dvakrát a oba obrazy jsou pak prolnuty s minimálním posunem (např. 0,5 pixelu) náhodně vybraným směrem.
+
  
  
==='''Morphological Anti-Aliasing'''===
+
To, že je MLAA post processing filtr, je jeho největší výhoda a zároveň také největší slabost. Nejprve se podívejme na to, proč je to výhodné. Tím největším plusem je fakt, že morfologické vyhlazování musí už z principu fungovat vždy a všude. Je přece úplně jedno, jaký obrázek upravujete.
  
 +
Další výhodou MLAA je aplikace filtru na celou plochu. Zatímco klasické MSAA se aplikuje jen na přechody hran, MLAA už z principu neví, kde přechody jsou, k dispozici má jen barevnou mapu. Vyhlazují se tak nejen hrany, ale také textury (a s nimi bohužel i vše ostatní). MLAA je tedy teoreticky vysoce kvalitní antialiasingový filtr aplikovaný na celý obraz a samo AMD jej srovnává se svým vysoce kvalitním filtrem CFAA.
  
Morphological Anti-Aliasing (MLAA) neboli morfologické vyhlazování je speciální filtr počítaný přes GPU, který se aplikuje až na vyrenderovaný snímek v paměti grafické karty těsně před odesláním na monitor. Morfologické vyhlazování musí už z principu fungovat vždy a všude. Zatímco MSAA se aplikuje jen na přechody hran, MLAA už z principu neví, kde přechody jsou, k dispozici má jen barevnou mapu. MLAA je tedy teoreticky vysoce kvalitní antialiasingový filtr aplikovaný na celý obraz
+
Třetí podstatnou výhodou morphological antialiasingu by měla být jeho nízká hardwarová náročnost. Zatímco klasické AA vždy alespoň částečně zvyšuje rozlišení obrazu, MLAA nic takového nedělá a jde o post processing efekt stejně jako třeba úprava kontrastu. Hardwarové nároky MLAA by tak měly být poměrně nízké.
  
 +
Jeho největší nevýhodou je paradoxně i jeho velká přednost: vyhlazování všeho. Jak již bylo řečeno, MLAA je post processing filtr a nedokáže tedy určit, co je vhodné vyhladit a co nikoliv. Procesem vyhlazování tedy projde vše včetně písma. To je po vyhlazení pochopitelně podstatně hůře čitelné a ve fontu jsou patrné chyby.
  
==='''Zdroje'''===
 
  
 +
=='''Zdroje'''==
  
 +
* Obrazy trojúhelníků převzaty z http://www.3dcenter.org
 
* http://visual-computing.intel-research.net/publications/papers/2009/mlaa/mlaa.pdf
 
* http://visual-computing.intel-research.net/publications/papers/2009/mlaa/mlaa.pdf
 
* http://sites.amd.com/us/game/technology/Pages/morphological-aa.aspx
 
* http://sites.amd.com/us/game/technology/Pages/morphological-aa.aspx
 
* http://www.tomshardware.com/reviews/radeon-hd-6870-radeon-hd-6850-barts,2776-4.html
 
* http://www.tomshardware.com/reviews/radeon-hd-6870-radeon-hd-6850-barts,2776-4.html
 
* http://www.svethardware.cz/art_doc-694B0E75F09B32BBC1256DD70074B6BA.html
 
* http://www.svethardware.cz/art_doc-694B0E75F09B32BBC1256DD70074B6BA.html
* http://pctuning.tyden.cz/hardware/graficke-karty/19969-morphological-aa-alternativni-vyhlazovani
 

Verze z 21. 12. 2011, 21:46

Obsah

Morphological Anti-Aliasing

Aliasing

Aliasing je pojem pro vznik artefaktů v důsledku vzorkování (při převodu spojité informace na diskrétní). Aliasing se vyskytuje u 2D i 3D objektů, nejpatrnější je však při sledování pohubu těchto objektů. S přechodem do trojrozměrného prostředí a s rozmachem 3D akcelerátorů začal vyvstávat čím dál tím akutněji jeden problém. Přestože se hrubá síla grafických karet zvyšovala, nevedlo to k přílišnému zlepšení obrazu. Počítač vytváří 3D objekty jako síť polygonů (malých trojúhelníků), které se následně potahují texturou. Čím je tato síť podrobnější, tím věrnější bude i obraz. Kvalitu obrazu jako takovou lze zlepšit např. zvýšením počtu těchto polygonů, příp. změnou rozlišení. Po vyrenderování celého obrazu v paměti počítače je nutné tento obraz upravit tak, aby mohl být zobrazen na monitoru. K tomu se v dnešní době používá tzv. rasterizace. A právě při tomto procesu dochází ke vzniku tolik nepopulárních zubů a dalších vad v obraze. Podíváme se proto na nejčastější typy artefaktů způsobených aliasingem.


Jagged Edges (Zubaté hrany)

Nejtypyčtější artefakt způsobený aliasingem. Jeho vznik si vysvětlíme na následujícím trojúhelníku. Jeho rozměry jsou přibližně 4x15 pixelů, nicméně jeho strany se přesně neshodují s hranicemi jednotlivých pixelů.

Trojuhelnik1 puvodni.gif


Výsledný obraz po rasterizaci právě proto vůbec neodpovovídá originálu. Obraz byl vytvořen tak, že systém zkontroloval, jakou barvu má střed pixelu (ony červené tečky). Pokud byl střed modrý, obarvil pixel modře. Pokud byl střed bílý, obarvil pixel bíle.

Trojuhelnik2 povykresleni.gif

Unconnected lines

Příklad unconnected lines


V případě, že budeme vykreslovat tenké objekty, jako jako jsou například lana na naší lodi či stožáry v dálce, dojde k úplnému rozpadu těchto objektů na kousky. Je to dané tím, že lana jsou tenčí než jeden pixel a nastane situace, kdy je lano mezi dvěma středy pixelů a nevykreslí se. Jenže u druhého pixelu se už lano vykreslí a u třetího zase ne. Tento jev se nazývá Unconnected lines. Pokud půjdeme ještě do většího extrému, mohou jednotlivé objekty začít úplně mizet a zase se objevovat. Tento jev se jmenuje flickering (poblikávání).

Moaré

Příklad Moaré



Moaré (anglicky moire) je jev, který vzniká při rasterizaci ploch s jemným vzorkem, na které se díváme pod úhlem nebo z dálky. Jde o ono typické zkroucení tenkých rovných linií a podobně. Řešením však není vždy přímo antialiasing, ale také filtrace textur, tedy anizotropní filtrování místo klasického a méně účinného bilineárního / trilineárního. Moaré se vyskytuje i v televizním vysílání - proto jsou pro vystoupení v televizi nevhodné oděvy s drobným vzorkem.





Porovnání obrazu před a po aplikováním anti-aliasingu

Anti-aliasing

Anti-aliasing je proces, který zjednodušeně řečeno vyhlazuje hrany v obraze, neboli odstraňuje artefakty vzniklé aliasingem. V místě hrany vloží barevné hodnoty odpovídající průměru barev na jednotlivých stranách hrany. Jde tedy o jakési rozostření hran, v jehož důsledku ale mizí "digitální" ostrost. Anti-aliasing ale také snižuje kontrast, výsledný obraz vlastně rozmazává, a v neposlední řadě je náročný na paměť a výkon grafické karty.


Oversampling (OSAA)

Základní metodou Antialiasingu je Oversampling. Pokud se vrátíme k trojúhelníku z odstavce o zubatých hranách, jistě nás napadne, že čím větší rozlišení, tím přesnější bude výsledný obraz. Při nekonečně vysokém rozlišení bychom i po rasterizaci dostali toreticky stejný trojúhelník jako před ní. Kařdý pixel tedy rozdělíme na čtyři menší a scéna se vyrenderuje ve dvojnásobném rozlišení. Výsledný trojúhelník tvořený ze čtverců vypadá daleko věrněji. Náš návrh v tomto provedení odpovídá 4× AA (každý pixel jsme nahradili čtyřmi menšími):

Trojuhelnik3 oversampling.gif

Nyní jen zprůměrujeme barvy u každých čtyř sousedních pixelů a scéna se převede zpět do původního rozlišení.

Trojuhelnik4 oversampling.gif

Výsledek je teď daleko věrnější než původně. Jenže je tu malá nevýhoda. Místo rozlišení 1920 × 1200 px obraz renderujeme v rozlišení 3840 × 2400. Zatížení sběrnice je obrovské, jsou tu velké nároky na paměť a podobně.


Supersampling (SSAA)

Kvůli obrovským nárokům Oversamplingu bylo nutné celý proces optimalizovat. Prvním krokem bylo zmenšení počtu subpixelů na polovinu.

Supersampling.gif


Všimněte si, že na obrázku má každý pixel jen dvě červené tečky (subpixely), které by šly snadno doplnit na čtyři. Tím bychom dostali původní 4× Oversampling. V praxi však v drtivé většina případů stačí jen dva takto diagonálně umístěné subpixely, přičemž kvalita obrazu se o mnoho nezhorší (obecně platí, že v každém řádku a každém sloupci musí být jeden subpixel). Tím jsme snížili nároky na polovinu a získali jsme 2× Supersampling.



Stejně jako v případě optimalizace 4× OAA na 2× SSAA můžeme optimalizovat i 16× Oversampling. V tomto případě už každý pixel dělíme na 16 menších a obraz renderujeme ve čtyřnásobném rozlišení. Po optimalizaci nám však však v každém řadě a sloupci zbude jen jeden subpixel, přičemž kvalita se nezmění (spodní trojúhelník). Tím dostáváme 4× Supersampling, který má stejné nároky na výkon jako 4× Oversampling, ale kvalita je na úrovni 16× Oversampling. Vzhled útvaru se navíc začíná vzdáleně podobat trojúhelníku, který jsme původně chtěli. Samozřejmě je mnoho možností, jak subpixely vybrat a podle toho se rozlišuje mnoho verzí Supersamplingu.

Trojuhelnik4 supersampling.png


Multisampling (MSAA)

Dnes nejrozšířenější metodou je Multisampling, který používají všechny čipy nVidia od GeForce3 dále. Stejně jako u supersamplingu jsou pixely rozděleny na více subpixelů, ovšem jen ty, které leží na okrajích polygonů, jsou počítány zvlášť (rozuměj jejich barva). Rozlišení je tedy u 4x anti-aliasingu čtyřikrát vyšší, ovšem některé čtveřice subpixelů jsou zpracovávány dohromady. Když subpixel leží uvnitř polygonu, musí i celý pixel ležet uvnitř a nemusí být tedy vyhlazen. Jeho barva je proto počítána pro všechny elementy zároveň. Pokud některý ze subpixelů zpracovávaného polygonu leží mimo trojúhelník, je logické, že pixel je okrajový a potřebuje vyhladit. Zde jsou tedy subpixely, které leží v polygonu, počítány nezávisle. Barva zbylých elementů (mimo polygon) je pak počítána až se sousedním polygonem. Vylučuje se tak situace, kdy bude barva subpixelu počítána dvakrát. Výhody této metody jsou jasné – uvnitř polygonů, kde se nemohou nacházet žádné zoubky, probíhají výpočty pro celý obrazový bod zároveň, protože kdyby byly vykonávány zvlášť pro jednotlivé subpixely, byl by výsledek stejný, ale výkon nižší. Účinek je tedy stejný jako u supersamplingu, scéna je zpracovávána ve vyšším rozlišením, ale s mnohem menším počtem kalkulací.

Multisampling je v dnešní době základní a nejpoužívanější typ vyhlazování hran. Ale existuje bezpočet vylepšených verzí, které dále zlepšují kvalitu vyhlazování. Například je to adaptivní antialiasing, který vyhlazuje hrany u průhledných textur či Custom Sampling Aliasing (CSAA; 16× režim u jedné Nvidia karty) od Nvidie a Custom Filter Antialiasing od ATI (CFAA; volitelné filtry).


Morphological Anti-Aliasing

Morphological Anti-Aliasing (MLAA) neboli morfologické vyhlazování od společnosti AMD je speciální filtr počítaný přes GPU, který se aplikuje až na vyrenderovaný snímek v paměti grafické karty těsně před odesláním na monitor.

Pro zjednodušené vysvětlení principu MLAA uvažujme pouze černobílý obrázek:


Mlaa.png


MLAA algoritmus probíhá ve třech základních krocích.

c_výsledná=(1-a)*c_původní+a*c_protější

kde c_původní je původní barva buňky a c_protější je barva na opačné straně barevné linie
barvy vyjadřujeme v intervalu <0,1>, kde 0 je černá, 1 je bílá.

např. pro buňku C5 z obrázku níže by platila rovnice:

c_výsledná=(1-1/3)*1+1/3*0=2/3
Lline.png


To, že je MLAA post processing filtr, je jeho největší výhoda a zároveň také největší slabost. Nejprve se podívejme na to, proč je to výhodné. Tím největším plusem je fakt, že morfologické vyhlazování musí už z principu fungovat vždy a všude. Je přece úplně jedno, jaký obrázek upravujete.

Další výhodou MLAA je aplikace filtru na celou plochu. Zatímco klasické MSAA se aplikuje jen na přechody hran, MLAA už z principu neví, kde přechody jsou, k dispozici má jen barevnou mapu. Vyhlazují se tak nejen hrany, ale také textury (a s nimi bohužel i vše ostatní). MLAA je tedy teoreticky vysoce kvalitní antialiasingový filtr aplikovaný na celý obraz a samo AMD jej srovnává se svým vysoce kvalitním filtrem CFAA.

Třetí podstatnou výhodou morphological antialiasingu by měla být jeho nízká hardwarová náročnost. Zatímco klasické AA vždy alespoň částečně zvyšuje rozlišení obrazu, MLAA nic takového nedělá a jde o post processing efekt stejně jako třeba úprava kontrastu. Hardwarové nároky MLAA by tak měly být poměrně nízké.

Jeho největší nevýhodou je paradoxně i jeho velká přednost: vyhlazování všeho. Jak již bylo řečeno, MLAA je post processing filtr a nedokáže tedy určit, co je vhodné vyhladit a co nikoliv. Procesem vyhlazování tedy projde vše včetně písma. To je po vyhlazení pochopitelně podstatně hůře čitelné a ve fontu jsou patrné chyby.


Zdroje

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje