Antyaliasing

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Antyaliasing (ang. anti-aliasing) – zespół technik w informatyce służących zmniejszeniu liczby błędów zniekształceniowych aliasing lub schodkowania obrazu, powstających przy reprezentacji obrazu lub sygnału o wysokiej rozdzielczości w rozdzielczości mniejszej.

W grafice komputerowej rezultatem antyaliasingu jest tworzenie wrażenia wygładzenia krawędzi obiektów wyświetlanych na ekranie komputera (ekranie rastrowym).

Wygładzanie krzywych[edytuj | edytuj kod]

Problem aliasingu w grafice rastrowej dotyczy prawie wszystkich krzywych. Wyjątkiem są jedynie pionowo oraz poziomo ułożone linie proste, których grubość jest równa wielokrotności pojedynczego piksela. Dla przykładu, wyświetlana bez użycia antyaliasingu czarna skośna linia prosta na białym tle będzie się składać z czarnych pikseli na białym tle i – przy większości współcześnie używanych rozdzielczości ekranu – będzie w widoczny sposób nierówna ("schodkowana").

Antyaliasing w tym przypadku może polegać na uzupełnieniu obrazu o piksele o jasności proporcjonalnej do odległości ich środków od idealnej prostej. W takim rozwiązaniu piksel, przez którego środek przechodzi linia będzie czarny, a piksel dalszy od niej w odpowiednim stopniu szary, bądź całkiem biały (w wypadku pikseli, których linia nie przecinała). Taka linia będzie wydawać się dużo gładsza, ale nieco rozmazana.

Ze względu na konieczność uzyskania rozsądnego kompromisu między gładkością a rozmyciem stosuje się różne techniki zaniku jasności, oparte np. na różnych miarach odległości. Ze względu na brak obiektywnych metod porównywania efektów zastosowania tych technik, właściwy efekt najczęściej otrzymuje się poprzez eksperymenty.

Supersampling[edytuj | edytuj kod]

Innym rodzajem antyaliasingu jest supersampling (nadpróbkowanie). Jest to rozwiązanie polegające na użyciu tzw. brute force do rozwiązania problemu aliasingu. W tej technice obraz jest renderowany w rozdzielczości odpowiadającej wielokrotności rozdzielczości docelowej, a uzyskany tym sposobem dużo większy obraz jest dyskretyzowany do właściwej, niższej rozdzielczości. W używanych współcześnie układach graficznych technika ta nosi nazwę antyaliasingu pełnoekranowego (FSAAang. Full-Screen Anti-Aliasing), obsługiwanego przez wszystkie nowoczesne karty graficzne.

Renderowanie podpikselowe, od lewej:
1. Bez antyaliasingu
2. Zwykłe renderowanie podpikselowe
3. Zwykły antyaliasing
4. Renderowanie podpikselowe z antyaliasingiem

Fonty[edytuj | edytuj kod]

W większości nowych środowisk graficznych antyaliasing jest stosowany do wygładzania krawędzi fontów ekranowych. Jest to problem znacznie bardziej złożony niż dla zwykłych linii, ponieważ rozmycia linii, które tworzą glify, mogą powodować nakładanie się i zlewanie blisko leżących linii, co z kolei może znacząco utrudnić odczytanie tekstu. Często jest też niemożliwe stosowanie zaawansowanych technik, ze względu na rosnący czas przetwarzania i dużą ilość tekstu.

Między innymi z powodu trudności w zastosowaniu antyaliasingu dla fontów nie zaleca się stosowania pochylonego tekstu w rastrze.

Przykłady[edytuj | edytuj kod]

obrazki czterokrotnie powiększone oryginalny rozmiar obrazków
bez antyaliasingu z antyaliasingiem bez antyaliasingu z antyaliasingiem
Black qcircle noaa 4x.png Black qcircle aa 4x.png Black qcircle noaa.png Black qcircle aa.png
Diamond without anti-aliasing 4x.png Anti-aliased diamond 4x.png Diamond without anti-aliasing.png Anti-aliased diamond.png

Tendencja do braku potrzeby antyaliasingu[edytuj | edytuj kod]

Jakość monitorów wzrasta (wielkość plamki maleje), więc antyaliasing traci na znaczeniu (np. w większości monitorów linia skośna 45°, a w niektórych przypadkach również 22,5°, nie wymaga antyaliasingu by wyglądać na gładką). Ocenia się, że za jakiś czas antyaliasing nie będzie potrzebny.

Linki zewnętrzne[edytuj | edytuj kod]