czwartek, 25 kwietnia, 2024

Nasze serwisy:

Więcej

    Jak poprawić wygląd gier? Antyaliasing w pigułce

    Zobacz również

    Poszarpane krawędzie wirtualnych obiektów to zmora graczy. Istnieje kilka metod ich eliminacji, ale czy któraś z nich jest definitywnie najlepsza? Zjawisko aliasingu jest najbardziej dokuczliwe, gdy linia krzywa jest widoczna na tle o sporym kontraście. W dużym uproszczeniu powstaje ono z powodu zbyt niedokładnych danych dotyczących danej linii, a więc najczęściej zbyt niskiej rozdzielczości. Aby zlikwidować nieprzyjemne dla oka „schodki”, najprościej jest zwiększyć

    - Reklama -

    rozdzielczość, w jakiej renderowana jest cała gra. Niesie to jednak ze sobą spore zwiększenie wymagań sprzętowych, a ponadto wymóg posiadania monitora zdolnego wyświetlić odpowiednio wysoką rozdzielczość.

    By móc przeciwdziałać zjawisku aliasingu (anti-aliasing, bądź antyaliasing), opracowano algorytmy, które powodują, że staje się ono mniej widoczne, a zarazem nie wpływają na wydajność tak mocno jak zwiększenie rozdzielczości.

    SSAA (SuperSampling Anti-Aliasing)

    To najstarsza i zarazem najmniej skomplikowana metoda, znana też pod nazwą FSAA (Full-Scene Anti-Aliasing). Polega na wyrenderowaniu obrazu w wyższej rozdzielczości, a następnie zeskalowaniu go do niższej rozdzielczości, w której działa gra. Podczas tego procesu położenie każdego piksela widocznego na ekranie jest obliczane na podstawie kilku próbek.

    Skalowanie do niższej rozdzielczości może przebiegać na kilka sposobów. Najpopularniejsze z nich to grid oraz rotated grid.

    • Grid dzieli piksel na kilka sub-pikseli i używa próbek z centrum każdego sub-pikseli, by opracować wynik.
    • Rotated grid jest nieco bardziej zaawansowanym algorytmem. Siatka próbek jest obrócona, by próbki nie zachodziły na siebie. Takie rozwiązanie zazwyczaj potrafi dodatkowo polepszyć jakość anti-aliasingu.

    SSAA zapewnia wysoką jakość obrazu i skuteczną redukcję schodków, jednak jest to okupione znaczącym spadkiem wydajności.

    MSAA (Multisample anti-aliasing)
    Pod kątem wydajności MSAA jest znaczącym usprawnieniem względem SSAA. Mniejsze obciążenie sprzętu zostało osiągnięte poprzez próbkowanie dwóch albo większej ilości sąsiadujących ze sobą pikseli, zamiast każdego z nich indywidualnie w wyższej rozdzielczości. Dzięki temu mogą zostać zastosowane kolejne optymalizacje. Np. jeśli występuje zgrupowanie pikseli o tym samym kolorze, nie wszystkie muszą być całkowicie analizowane – co zdecydowanie zwiększa wydajność.

    SSAAx4 oznacza, że każdy piksel potrzebuje czterech próbek. Natomiast w przypadku MSAAx4 niektóre próbki mogą być rozdzielone między sąsiadujące piksele. Niestety zabiegi pozwalające na zmniejszenie zapotrzebowania na moc obliczeniową powodują, że algorytm MSAA bardzo źle radzi sobie z powierzchniami przezroczystymi, które są często stosowane w nowych grach. Dzieje się tak dlatego, że w podwyższonej rozdzielczości odbywa się jedynie rasteryzacja siatek, a cieniowanie i wypełnianie teksturami przeprowadzane są już w rozdzielczości natywnej.

    Anti aliasing postprocesowy
    Osobnym typem anti-aliasingu są algorytmy działające po zakończeniu renderowania, na poziomie postprocesingu. Ich główną zaletą jest bardzo niewielki wpływ na wydajność.

    Tego typu algorytmy występują w kilku odmianach:

    • FXAA (Fast Approximate Anti-aliasing) – powoduje lekkie rozmycie obrazu, co dla niektórych graczy jest nie do przyjęcia;
    • SMAA (Enhanced Subpixel Morphological Antialiasing) – nie rozmywa obrazu aż tak bardzo.

    Producenci gier czasami na własną rękę opracowują algorytmy anty-aliasingu. Wartymi odnotowania są CMAA z Grid Autosport, AAA z Metro Last Light, czy TAA (Temporal Anti-Aliasing) z Rainbow Six: Siege.

    Osoby lubiące eksperymenty mogą skorzystać ze specjalnych programów, które umożliwiają zastosowanie postprocesowych metod wygładzania krawędzi w tytułach, które ich natywnie nie wspierają.

    Wpływ na wydajność
    Platforma testowa:

    • Intel Core i5-6600K @ 4,7 GHz
    • 2 x 8 GB DDR4 @ 2800 MHz
    • Sapphire NITRO Radeon RX 470 8 GB
    • Radeon Software Crimson Edition 16.10.1

    SSAA mocno obniża wydajność i wymaga bardzo mocnej konfiguracji. Aczkolwiek może być dobrym rozwiązaniem w przypadku starszych gier.

    Podsumowując

    1)    W przypadku słabszych komputerów lepiej postawić na metody postprocesowe, które nie wpływają znacząco na wydajność.
    2)    Połączenie SSAA / MSAA z metodą postprocesową może okazać się dobrym kompromisem pomiędzy jakością wygładzania krawędzi, a szybkością działania gry.
    3)    SSAA jest świetną metodą na polepszenie wyglądu starszych, mniej wymagających gier.
    4)    Jeśli gra nie obsługuje wygładzania postprocesowego, warto spróbować zewnętrznych programów to umożliwiających.
    5)    W niektórych tytułach wygładzanie postprocesowe wygląda lepiej niż MSAA.

    ŹródłoSapphire
    guest
    0 komentarzy
    Inline Feedbacks
    View all comments
    - Reklama -

    Najnowsze

    Samsung prezentuje serię dokumentów o kultowych dyscyplinach olimpijskich

    Samsung, oficjalny partner Igrzysk Olimpijskich i Paralimpijskich, prezentuje serię filmów dokumentalnych poświęconych kultowym dyscyplinom olimpijskim, takim jak skateboarding, breakdance,...