2011. február 23., szerda

Aliasing és Anti Aliasing

Mi is az az Alisaing? Eredendően egy mintavételezési hibáról beszélhetünk. Van a mi kis analóg világunk a maga majdnem végtelen (szemünk számára végtelen, mert nem látunk molekuláris szinten) részletességével, és ezt szeretnénk minél jobban megközelíteni a monitoron (valósághű). Mivel a számítógép digitális, van egy részecskeméret (pl. egy pixel a monitoron) ami alá nem tud menni, azok a részletek, amik a való világban kisebbek ennél a részecskeméretnél nem - vagy csak nagyon nehezen - jeleníthetőek meg. Ezt a problémát hívják aliasingnak. A gyakorlatban két megjelenési formája van:

1. töredezett élek (ezzel gondolom mindenki találkozott)

2. megjelenő majd eltűnő részletek

Felmerül a kérdés, hogy miért nem lehet ezt gondos tervezéssel (nem tervezek túl kis objektumokat) elkerülni. Sajnos nem lehet, mert egy hatalmas objektum is összemehet apróra, ha távol kerül a kamerától.

Hogyan lehet védekezni ellene? - Anti Aliasing

Valamilyen módon finomítani kell a felbontást, persze ez további számolással és memória valamit memória sávszélesség zabálásával jár. Persze semmi sincs ingyen még a virtuális világban sem. Akkor hogyan? Túlmintavételezéssel! Növeljük kétszeresére a felbontást mindkét irányba, ezzel megnő a kép részletessége viszont drasztikusan nő a feldolgozás összetettsége is. Így egyetlen pixelt már 4 pixel fog reprezentálni a megnövelt képünkön. Ezen a duplázott képen számoljuk ki a rendereléseket, majd visszaméretezzük a képet úgy, hogy 2×2esével kiátlagoljuk (összeadjuk, majd elosztjuk négyel) a pixeleket. Ezt a kétszeres növelést (kétszeres túlmintavételezés) hívják Nyquist mintavételezési törvénynek.


A túlmintavételezést megcsinálhatjuk többféleképpen is. A legegyszerűbb a duplázás x és y irányba OGSS (Ordered Gird Super Sampling), de használható elforgatással kapott mintavételezés RGSS (Rotated Gird Super Sampling) amikor a 4 (vagy több) szubpixel az eredeti kép elfogatásával jön létre.

OGSS mechanizmusa

Szintén használható valamilyen fajta multi sampling, ahol nem a kép duplázásával nyerünk újabb mintavételi részleteket hanem valamilyen más transzformációval. A multisampling általában gyengébb képet ad mint a supersampling de jóval gyorsabb.

Akkor most lássuk a hatást gyakorlatban

Egy egyszerű mintavételezési példa. Rajzoljunk pár fekete sávot fehér háttérrel és ezeket nézzük meg 110, 133 és 200 százalékos nagyításban.

100% - 110% - 133% - 200%

Látható, hogy csak 200%-nál maradt töredezés mentes a sáv felülete, mert itt jött ki kétszer annyi (egész számszor) mintavevő hely.
mrudi

0 megjegyzés :

Megjegyzés küldése