Jeśli kiedykolwiek spojrzałeś na ustawienia grafiki w grach wideo, prawdopodobnie zauważyłeś ustawienie antyaliasingu. I jeśli inne ustawienia, takie jak odległość renderowania czy jakość cieni, są dość intuicyjne, możesz mieć trudności ze zrozumieniem, czym jest antyaliasing.
Jeśli jesteś fanem gier komputerowych, w pewnym momencie musiałeś zapewne zmierzyć się z układem GPU, który nie jest wystarczająco wydajny dla Twoich ulubionych gier. Być może sądziłeś, że Twoja nowa gra będzie charakteryzować się ogromnym rozmachem i imponującą szczegółowością. Zamiast tego, wygląda jak 8-bitowe Super Mario Bros.
Te blokowate, rozpikselowane krawędzie, które można zobaczyć w grach na PC, są zwykle nazywane „jaggies”. W większości przypadków można się ich pozbyć, zwiększając rozdzielczość ekranu. Nie jest to jednak możliwe dla wszystkich graczy. Jeśli masz stary układ GPU lub Twój układ GPU nie jest przeznaczony do gier, nie będziesz w stanie osiągnąć wyższych rozdzielczości bez poważnych spowolnień w grze.
W tym artykule wyjaśnimy, co to jest antyaliasing.
Dlaczego potrzebujemy antyaliasingu w grach
Struktura ekranu monitora to matryca kwadratowych pikseli. Łatwo się domyślić, że w takim przypadku tylko linie poziome i pionowe będą rysowane idealnie poprawnie. Gdy tylko komputer próbuje narysować linię ukośną, pojawiają się postrzępienia pikseli.
Problem ten można rozwiązać poprzez zakup monitora o wyższej rozdzielczości. Najprawdopodobniej, jeśli nie masz nowoczesnej karty graficznej, będziesz musiał ją również uaktualnić. Ale ta opcja nie będzie pasować każdemu.
Z tego powodu deweloperzy dodają do swoich gier technologię antyaliasingu. Została ona wynaleziona już w 1972 roku, ale popularność w branży gier zaczęła zdobywać dopiero kilkadziesiąt lat później. Antyaliasing polega na pomalowaniu sąsiadujących pikseli na kolor pośredni (lub gradient kolorów). Poszarpane przejście będzie wtedy wydawać się mniej ostre, tym samym antyaliasing poza granicę.
Antyaliasing jest wykorzystywany nie tylko w grach, ale także w interfejsach programów, a nawet po prostu w systemach operacyjnych. Oprócz obrazów algorytm ten przetwarza również tekst, dzięki czemu małe czcionki stają się bardziej czytelne.
Istnieją różne sposoby na osiągnięcie antyaliasingu. Poniżej wymieniono główne i popularne algorytmy antyaliasingu, ale w grach można spotkać również inne rodzaje.
Antyaliasing z supersamplingiem (SSAA)
SSAA to najprostszy, ale jednocześnie najbardziej efektywny rodzaj antyaliasingu, który w grach daje najładniejszy obraz. Niestety, poważnie obniża on wydajność. Procesor graficzny wirtualnie zwiększa rozdzielczość ekranu kilkukrotnie. Po wyrenderowaniu klatki, obraz jest kompresowany z powrotem do oryginalnego rozmiaru, uśredniając kolory wirtualnych pikseli do odpowiadających im rzeczywistych pikseli. Jeśli rozdzielczość ekranu to Full HD (1920×1080), a antyaliasing działa w trybie 4x, klatka zostanie wyrenderowana w rozdzielczości 4K (3840×2160).
Niestety, nie wszystkie gry wideo posiadają ten typ antyaliasingu. Algorytm SSAA najlepiej sprawdza się w nienowoczesnych grach, gdzie zużycie zasobów przy tym antyaliasingu zostanie zrekompensowane przez wysoką wydajność gry.
Czasami jednak w ustawieniach można znaleźć SSAA 0,5x. Podczas korzystania z niego rozdzielczość obrazu jest zmniejszana prawie o połowę, a podczas wyświetlania na ekranie jest on rozciągany do tyłu. Jakość obrazu w tym przypadku spada, ale wydajność gry, wręcz przeciwnie, wzrasta.
Wielopróbkowy antyaliasing (MSAA)
W praktyce wygładzanie nie musi być stosowane do całego kadru. Jest ono odpowiednie tam, gdzie występują skośne linie, kontrastujące granice wielokątów lub małe obiekty w oddali. Dlatego właśnie zasobożerny SSAA został zastąpiony lżejszym MSAA.
Ten rodzaj antyaliasingu działa według podobnego algorytmu: zwiększa wirtualną rozdzielczość pewnego fragmentu klatki, rysuje go, a następnie zmniejsza rozdzielczość do oryginalnej.
Ten typ antyaliasingu jest jednak nieefektywny w grach, w których trzeba wyrenderować wiele małych obiektów: trawę, liście, czy włosy – wszystkie te rzeczy, które twórcy tak gorączkowo starają się uszczegółowić. W takich przypadkach, ten typ antyaliasingu staje się identyczny jak jego poprzednik, a więc tak samo zasobożerny.
Szybki przybliżony antyaliasing (FXAA)
Idea tego algorytmu polega na uśrednianiu kolorów sąsiadujących ze sobą rzeczywistych (nie wirtualnych) pikseli. FXAA jest bardzo niewyraźny, ale wymaga minimalnych zasobów. Nie jest to najlepsza opcja, ale jedna z najpopularniejszych.
Podczas korzystania z niego należy zrozumieć, że wszelkie ostre elementy lub kontrastowe granice są rozmywane, co w niektórych przypadkach sprawia, że obraz nie jest zbyt przyjemny dla oka. Musisz więc wybrać między rozmytym obrazem a poszarpaną linią pikseli.
antyaliasing morfologiczny (MLAA)
Ten rodzaj antyaliasingu jest podobny do FXAA Intela. Algorytm działa po ostatecznym wyrenderowaniu klatki, więc może być wykonywany nie na GPU, ale na CPU. Dzięki temu znacznie zmniejsza się obciążenie procesora graficznego.
Gracze PC je uwielbiają, ponieważ pozwalają one na wyostrzenie grafiki przy stosunkowo niewielkiej mocy obliczeniowej. Oczywiście, zastrzeżeniem jest to, że grafika może wyglądać na nieco bardziej rozmytą. Wielu graczy uważa jednak, że odrobina rozmycia jest warta ostrzejszego obrazu.
Subpikselowy antyaliasing morfologiczny (SMAA)
Jest to antyaliasing bazujący na FXAA i MLAA. Jest to ulepszona wersja MLAA, ale nie działa na CPU, lecz na GPU, co oznacza, że zużywa jego zasoby.
Niestety, podobnie jak jego dwaj poprzednicy, ten rodzaj antyaliasingu w grach również rozmywa obraz, przez co niektóre pojedyncze małe obiekty (takie jak cząsteczki brudu czy rysy) są rozmyte.
Czasowy antyaliasing (TXAA/TAA)
Ten rodzaj antyaliasingu opracowany przez Nvidię nie tylko eliminuje jitter pikseli, ale także usuwa niepotrzebny jitter z obiektów.
Ten antyaliasing działa świetnie, gdy obraz jest statyczny lub prawie statyczny. Gdy tylko scena staje się dynamiczna, algorytm zaczyna zużywać dużo zasobów. Dodatkowo, mogą zacząć pojawiać się artefakty spowodowane przez obrazy szczątkowe z poprzednich klatek.
Dynamiczna superrozdzielczość (DSR)
Antyaliasing jest również wyprostowany przez Nvidię. Algorytm jest podobny do SSAA. Różnica polega na tym, że DSR po prostu uruchamia grę w wyższej rozdzielczości ekranu. Następnie, podobnie jak SSAA, renderuje klatkę, a potem zmniejsza obraz do oryginalnej rozdzielczości.
Zalety: będziesz mógł robić zrzuty ekranu w rozdzielczości 4K na monitorze Full HD. Jeśli jednak gra nie jest w pełni zoptymalizowana pod kątem tego typu antyaliasingu, interfejs gry i czułość myszy mogą się zmniejszyć, ponieważ grasz w zasadzie w wyższej rozdzielczości niż twój monitor.
Antyaliasing z próbkowaniem pokrycia lub antyaliasing z filtrem niestandardowym (CSAA/CFAA)
Ulepszona wersja MSAA. Daje taką samą jakość obrazu jak MSAA x 8, ale zużywa tyle samo zasobów co MSAA x 4. Prawie nie występuje rozmycie.
Algorytm jest ulepszony poprzez uwzględnienie danych o sąsiednich pikselach. Pozwala to na dokładniejszy antyaliasing bez wpływu na małe obiekty, które nie powinny być rozmywane.
Jaki antyaliasing wybrać w grze
Jeśli posiadasz potężny komputer do gier, a w ustawieniach grafiki widzisz antyaliasing SSAA – nie wahaj się go wybrać. Jeśli jednak przeceniłeś moc swojego peceta, a takie rozwiązanie poważnie wpływa na liczbę klatek na sekundę, to spróbuj znaleźć SMAA lub TXAA (TAA).
Jeśli Twój komputer jest bardziej budżetowy, zawsze możesz skorzystać z opcji FXAA, MLAA lub MSAA.