MLAA - rewelacja czy nie?
Antyaliasing jest technologią polepszania jakości wyświetlanego obrazu doskonale znaną graczom. O ile antyaliasing jako taki jest pojęciem dość szerokim, to w kwestii wykorzystania w grach jego zadanie jest oczywiste. Technologia ta wygładza krawędzie, dzięki którym efekt "schodków" ułożonych z sąsiadujących pikseli o dużym kontraście staje się niewidoczny lub mniej widoczny.
Taki - wydawałoby się - drobiazg jak wygładzanie krawędzi w grach potrafił doprowadzić do wojenki pomiędzy producentami chipsetów graficznych. Swego czasu głośna stała się sprawa gry Batman: Arkham Asylum, w której to posiadacze kart NVIDII mogli włączyć antyaliasing, natomiast posiadacze kart ATI/AMD już nie.
Firma AMD oskarżyła NVIDIĘ o blokowanie tej funkcjonalności dla kart Radeon. O ile bowiem AA można było wymusić w sterownikach kart Radeon, to jednak gra z włączonym antyaliasingiem działała znacznie wolniej niż na kartach GeForce, gdzie działanie tej technologii było dodatkowo zoptymalizowane. Na zarzuty "Zieloni" odpowiedzieli krótko: NVIDIA wspiera deweloperów gier, a AMD - nie. Wedle firmy AMD, ich programiści również współpracowali z producentem gry nad implementacją AA w Batmanie, jednak niespodziewanie podczas produkcji obsługa wygładzania krawędzi w grze zmieniła się ze standardowego MSAA, na zoptymalizowaną technologią obsługiwaną jedynie przez karty GeForce.
Algorytmów wygładzania krawędzi było i jest wiele. Z początku do pokrywania antyaliasingiem całego obrazu wykorzystywano metodę SuperSampling (zwaną też Full Scene), czyli SSAA/ FSAA, która dawała znakomite efekty, ale poważnie obciążała sprzęt. Od czasów DirectX 8 z powodzeniem wykorzystuje się metodę MultiSamplingu (MSAA), która daje gorsze efekty, ale i też nie obciąża układu graficznego w tak wysokim stopniu. W międzyczasie pojawiały się innowację jak CSAA (Coverage Sampling), który oferuje więcej próbek filtrowania (16) przy równoczesnym szybszym działaniu (tylko karty GeForce). NVIDIA zwiększyła też ilość próbek w kartach Fermi do 32.
AMD/ATI rownież wprowadziła kilka innowacji do działania AA na Radeonach, ale w praktyce w grach można się zwykle spotkać głównie z wygładzaniem MSAA do 8 próbek.
Poszukiwania idealnej metody wygładzania wciąż trwają, jednak wraz z premierą Radeonów serii 6xxx firma AMD zaprezentowała jego nową (chociaż sama idea nową nie jest) odmianę. Tutaj na scenę wkracza właśnie MLAA (MorphoLogical AntiAliasing), czyli filtrowanie morfologiczne.
Czym ta technologia różni się od poprzedników? Po pierwsze jest to technologia post-processingu. Wygładzanie krawędzi nie działa "w locie" jak w przypadku MSAA/CSAA, ale jest nakładane na gotową scenę (przy użyciu DirectCompute). Wedle AMD wydajność jest porównywalna z CFAA (wykrywanie krawędzi), ale cały obraz jest wygładzany, bez pominięcia żadnych krzywych. Technika ta jest równocześnie szybsza od SuperSamplingu (SSAA/FSAA).
Wygładzanie MLAA jest kompatybilne ze wszystkimi grami (DirectX 9, DirectX 10 i DirectX 11), także tymi, które nie mają natywnego wsparcia AA i tymi, w których do tej pory nie można było wygładzania krawędzi wymusić. Rewelacja? Zaraz to sprawdzimy.
Więcej o Radeonach:
CCC - ustawienia karty graficznej
AMD wprowadziła obsługę filtrowania morfologicznego (Morphological AntyAliasing - MLAA) wraz z kartami Radeon serii 6xxx, a właściwie wraz z nowymi sterownikami.
Stara wersja intefejsu CCC z opcją filtrowania morfologicznego
Co z użytkownikami Radeonów z serii 5? Wraz ze sterownikami 10.1 pojawiła się poprawka oznaczona literką "e", która umożliwiała wykorzystanie MLAA również na tych kartach. Włączenie filtrowania morfologicznego jest banalnie proste. Wystarczy "zaptaszkować" opcję Filtrowanie Morfologiczne i kliknąć przycisk Zastosuj.
Uwaga! Od tej chwili filtrowanie morfologiczne jest aktywne i może wygładzać nie tylko gry, ale i programy, np. rozmazując dokumentnie czcionkę. Na szczęście takie przypadki są rzadkie. Niemniej jednak warto pamiętać, by po rozgrywce je wyłączyć. Korzystanie z filtrowania morfologicznego stanie się mniej kłopotliwe gdy tylko twórcy gier zaczną implementować technologię w swoich produkcjach.
Nowa wersja intefejsu CCC z opcją filtrowania morfologicznego
Jeśli chcemy pozostawić standardowe AA pod kontrolą aplikacji, pozostawiamy opcję włączoną. Jeśli gra nie ma zaimplementowanej obsługi wygładzania krawędzi, odznaczamy opcję i wybieramy poziom filtrowania. W przypadku filtru Standard jest to od 2 do 8 próbek - im więcej tym wygładzanie jest bardziej efektywne, ale wzrasta obciążenie układu graficznego, a tym samym zmniejsza się szybkość działania gry. Poziom próbek jest związany ze standardowym antyaliasingiem. Filtrowanie morfologiczne może działać bez niego lub w połączeniu.
Platforma i aplikacje testowe
Czwarta część Grand Theft Auto z pewnością jest znakomitą produkcją o zaawansowanym silniku graficznym. Niestety twórcy gry nie dość, że nie zaimplementowali w niej opcji AA, to na dodatek wygładzania krawędzi nie da się wymusić w sterownikach. Wykorzystaliśmy wersję Episodes From Liberty City, a konkretnie The Ballad of Gay Tony. Grę testowaliśmy w rozdzielczości 1680 x 1050 przy ustawianiech wysokich, oraz filtrowaniu anizotropowym x16. Pozostałe ustawienia - View Distance: 25, Detail Distance: 31, Vehicle Density: 51, Definition: On, VSync: Off. Gra posiada wbudowany benchmark, jednak nie wykorzystaliśmy go ze względu na brak różnic w działaniu na jednej z testowych kart. Szybkość działania GTA IV mierzyliśmy za pomocą programu Fraps, czas pomiaru wynosił 60 sekund. Wynik wyrażany jest w klatkach na sekundę - im więcej tym lepiej.
Half-Life jest serią gier którą zna każdy szanujący się gracz. Druga część została wyposażona w opcję wygładzania krawędzi, ale nie działa ona idealnie. W testach wykorzystaliśmy Half-Life 2: Episode Two. Testy zostały przeprowadzone w rozdzielczości 1680 x 1050 w najwyższych możliwych ustawieniach. Szybkość działania Half-Life 2: Episode Two mierzyliśmy za pomocą programu Fraps, czas pomiaru wynosił 60 sekund. Wynik wyrażany jest w klatkach na sekundę - im więcej tym lepiej.
Jedną z nielicznych wad silnika Mass Effect (oraz Mass Effect 2) jest brak opcji antyaliasingu. Engine nie jest może najnowszy, ale wciąż prezentuje się bardzo ładnie, a odrobina AA z pewnością doda mu uroku. Testy zostały przeprowadzone w rozdzielczości 1680 x 1050 w maksymalnych ustawieniach graficznych. Do testów wykorzystaliśmy teren Cytadeli. Szybkość działania Mass Effect mierzyliśmy za pomocą programu Fraps, czas pomiaru wynosił 60 sekund. Wynik wyrażany jest w klatkach na sekundę - im więcej tym lepiej.
Batman: Arkham Asylum
Wspomniany we wstępie Batman: Arkham Asylum, który swego czasu stał się kością niezgody pomiędzy NVIDIĄ, a AMD/ATI. Do testów wykorzystaliśmy wbudowany w grę benchmark. Testy zostały przeprowadzone w rozdzielczości 1680 x 1050 w maksymalnych ustawieniach graficznych. Jako, że testy były przeprowadzane wyłącznie na kartach Radeon HD, opcja PhysX została wyłączona. Wynik wyrażany jest w klatkach na sekundę - im więcej tym lepiej.
Mass Effect
Produkcja, której twórcy "zapomnieli" o takim drobiazgu jak antyaliasing. Wiemy już, że trzecia część przygód komandora Sheparda jest już opracowywana. Do tego czasu możemy sobie uprzyjemniać czas, jeszcze raz przechodząc zarówno pierwszą, jak i drugą część gry - oczywiście wraz ze wszystkimi dodatkami. Jak do tej pory twórcy gry nie zaimplementowali technologii wygładzania krawędzi ani w pierwszej, ani w drugiej części gry. AA możemy wymusić w sterownikach, ale i w tym przypadku jego działanie jest niedoskonałe. Obraz wygładzany jest jedynie częściowo.
Standardowo bez AA - nie wygląda za ładnie
AA x8 - pokrycie niedoskonałe
MLAA - znacznie bliżej ideału
MLAA + AA x8 - lepiej być nie może
Mass Effect (Radeon HD 5770) - 1680 x 1050, ustawienia maksymalne
Niezależnie od wykorzystanej metody AA, lekko podkręcony Radeon HD 6850 radzi sobie śpiewająco. Starszy Radeon HD 5770 ma już dość ciężki orzech do zgryzienia. Niemniej wykorzystanie samego MLAA daje bardzo dobre efekty i jest nieco szybsze od AA x8.
Ocena: Filtrowanie morfologicznego w Mass Effect działa szybciej i lepiej niż MSAA, jednak najlepszy efekt uzyskamy łącząc obie technologie. W przypadku Radeona HD 5770 może to spowolnić grę niemal dwukrotnie.
Batman: Arkham Asylum
Pierwsza wersja gry Batman: Arkham Asylum miała w swoich ustawieniach niemiłą niespodziankę dla posiadaczy Radeonów.
Po instalacji patcha (1.1) można dostrzec "wsparcie" dla użytkowników kart AMD Jest to po prostu informacja, że jeśli chcemy wykorzystać wygładzanie krawędzi, musimy skorzystać z CCC (Catalyst Control Center), czyli mówiąc wprost wymusić je w sterownikach.
Wymuszanie MSAA w Batmanie działa i to całkiem sprawnie. Włączenie samego MLAA również daje dobry efekt. Najlepszy efekt jednak uzyskamy łącząc ze sobą obie technologie. Poniższy materiał wideo prezentuje, jak gra wygląda bez wygładzania krawędzi, a jak z włączonymi opcjami MLAA oraz MSAA x8.
Porównanie działania gry z wygładzenim krawędzi i bez - zalecamy oglądanie w rozdzielczości HD
Batman: Arkham Asylum: Benchmark (Radeon HD 6850 OC) - 1680 x 1050, Maksymalne ustawienia
Niestety w tym przypadku filtrowanie morfologiczne poważnie obciąża układ graficzny. Wygładzanie AA x8 daje bardzo dobre efekty i mimo, że nie jest tak dokładne jak MLAA, to jednak powoduje znacznie mniejsze obciążenie sprzętu, a w konsekwencji szybsze działanie. Widać też, że przy włączonym MLAA ilość próbek MSAA praktycznie nie ma żadnego znaczenia dla wydajności. Jeśli posiadasz mocny sprzęt i taki spadek FPS nie robi na tobie wrażenia, możesz śmiało wykorzystać MLAA + MSAA. W innym przypadku wykorzystaj standardowe wygładzanie krawędzi - efekt będzie dobry, a działanie szybsze.
Batman: Arkham Asylum: Benchmark (Radeon HD 5770) - 1680 x 1050, Maksymalne ustawienia
Przy wykorzystaniu AA x8 i samego MLAA spadek szybkości działania jest porównywalny. Połączenie obu tych metod wygładzania krawędzi powoduje, że gra zaczyna działać nieco za wolno.
Ocena: Pomimo większej dokładności wygładzania, w tej grze MLAA znacznie mocniej obciąża sprzęt od MSAA. Jeśli twoja karta graficzna ma odpowiedni zapas mocy, możesz skorzystać z obu technik. W innym przypadku wystarczy zwykłe MSAA. Filtrowanie morfologiczne w tej grze nie ma dużego pola do popisu.
StarCraft 2 - Wings of Liberty
W StarCraft 2 można wymusić wygładzanie krawędzi (w panelu sterowania CCC), ale AA nie obejmuje wszystkich obiektów w grze (m.in. roślinności). MLAA na pewno znajdzie tu zastosowanie. Filtrowanie morfologiczne nieco bardziej rozmywa niektóre szczegóły niż ma to miejsce w przypadku 8 próbek MSAA. W praktyce jest to jednak widoczne tylko na powiększeniach obrazu.
StarCraft 2: Wings of Liberty (Radeon HD 6850 OC) - 1680 x 1050, ustawienia ultra -
Także i tutaj najlepsze efekty daje połączenie obu metod wygładzania. W przypadku Radeona HD 6850 i testowej rozdzielczości możemy śmiało je wykorzystywać. Szybkość działania gry się nieco zmniejsza, ale jedynie do akceptowalnego poziomu. Na wykresie widać jedną anomalię - przy wykorzystaniu AA x8 drastycznie maleje minimalna liczba klatek na sekundę. Równoczesne wykorzystanie MLAA i MSAA nie powoduje już takiego spadku. Sprawdźmy czy analogiczna sytuacja będzie miała miejsce w przypadku Radeona HD 5770.
StarCraft 2 - dzięki MLAA grafika jeszcze bardziej cieszy oko
StarCraft 2: Wings of Liberty (Radeon HD 5770) - 1680 x 1050, ustawienia ultra
MLAA jednak jest szybszy od AA x8 i to wyraźnie. Równoczesne wykorzystanie MLAA i MSAA tym razem nie daje żadnych profitów w postaci większej szybkości działania. W przypadku tej gry filtrowanie morfologiczne powinno być wyjściem idealnym, ale niestety... MLAA rozmywa też czcionkę, przez co staje się ona lekko nieczytelna. Może to nieco przeszkadzać w rozgrywce. Z wykresów można też wywnioskować, że 6850 po lekkim OC może być też ponad dwukrotnie szybszy od 5770 przy wykorzystaniu technik wygładzania krawędzi.
Ocena: działanie MLAA w grze jest dobre, ale problemem może być lekkie rozmycie napisów.
Testy: gry c.d.
Grand Theft Auto IV to znakomita gra do testów MLAA, bo jest to produkcja całkowicie pozbawiona AA, a co gorsze, nie da się wymusić wygładzania krawędzi nawet w sterownikach karty graficznej. Filtrowanie morfologiczne jest tu wybawieniem i sprawdza się znakomicie.
Ku naszemu zdziwieniu, przy wykorzystaniu Radeona HD 6850 włączenie MLAA nie powodowało praktycznie żadnego zmniejszenia szybkości działania gry, jeśli chodzi o wbudowany w nią benchmark. Sprawdziliśmy więc, czy podczas realnej rozgrywki także nie odczujemy żadnych różnic. Test polegał na spacerze ulicami Liberty City. Czas pomiaru wynosił 60 sekund.
GTA IV: EFLC - The Ballad of Gay Tony (Radeon HD 6850 OC) - 1680 x 1050, ustawienia wysokie, AF x16
Tym razem różnica jest doskonale widoczna, ale jest naprawdę niewielką ceną za gładki i pozbawiony kantów obraz. Zejście z 60 do 52 klatek na sekundę jest jak najbardziej akceptowalne i trzeba uznać, że w przypadku tej gry filtrowanie morfologiczne sprawdza się doskonale. Czy sytuacja powtórzy się przy wykorzystaniu Radeona HD 5770?
Dzięki MLAA Liberty City wygląda jeszcze lepiej
GTA IV: EFLC - The Ballad of Gay Tony (Radeon HD 5770) - 1680 x 1050, ustawienia wysoki, AF x16
W przypadku Radeona HD 5770 włączenie MLAA poważnie odbija sie na wydajności. Tym razem także wbudowany w grę benchmark pokazał znaczącą różnicę (38 bez MLAA i 28 z MLAA).
Ocena: MLAA to jedyny sposób na wykorzystanie wygładzania krawędzi w grze i sprawdza się bardzo dobrze. Jednak dysponując kartą z serii Radeon HD 57xx lub niższą, należy się spodziewać dużej utraty wydajności.
Half-Life - Episode II
Half-Life 2 ma opcję wygładzania krawędzi, ale - niespodzianka - nie działa ona idealnie. Po prostu niektóre elementy są wygładzane, a inne nie. Podobnie jak w Crysis (i Crysis: Warhead) nie obejmuje takich elementów jak roślinność, a dokładniej rzecz biorąc liści. Drobiazg? Owszem, ale potrafi być irytujący.
Wygładzanie krawędzi w Half-Life 2: Episode Two
Half-Life 2: Episode Two (Radeon HD 6850 OC) - 1680 x 1050, ustawienia maksymalne
Do testów wybraliśmy otwarty teren z dużą ilością detali do wygładzenia (drzewa, krzaki, elementy architektoniczne). Różnica pomiędzy AA x8 a filtrowaniem morfologicznym jest potężna - te wszystkie listki, gałązki i zakamarki czekają na wygładzenie i po prostu pożerają moc układ graficznego. Niemniej jednak dysponując sprzętem o podobnej wydajności nie musimy się o to martwić - przy wykorzystaniu obu technologii minimalna prędkość działania spada tylko nieco poniżej 60 klatek na sekundę.
Half-Life 2: Episode Two (MLAA + AAx8) - wszystko idealnie gładkie
Half-Life 2: Episode Two (Radeon HD 5770) - 1680 x 1050, ustawienia maksymalne
O ile bez AA obie karty radzą sobie praktycznie tak samo, to zastosowanie wygładzania krawędzi w przypadku starszego Radeon HD 5770 oznacza większy spadek wydajności. Przy maksymalnym filtrowaniu (MLAA + AA x8) gra wciąż pracuje z prędkością 50-60 klatek na sekundę, co jest całkowcie zadowalające (przynajmniej jeśli mowa o trybie dla pojedynczego gracza).
Ocena: działanie MLAA dopieszcza grafikę do ostatniego detalu, ale oznacza dość poważny spadek wydajności. Silnik HL2 jednak nie jest już najnowszy i działa bardzo szybko nawet na kartach ze średniego segmentu.
Podsumowanie
Przede wszystkim: po co to komu? Część gier pozbawiona jest technologii wygładzania krawędzi, a w innych AA nie obejmuje wszystkich elementów ekranu. Filtrowanie morfologiczne jest znakomitym remedium na takie problemy, a na dodatek w przeciwieństwie do MSAA/CSAA pokrywa absolutnie cały obszar obrazu.
Brak antyaliasingu często zdarza się w grach, które są konwersją z konsoli. Wygładzanie krawędzi w grach konsolowych jest zwykle niepotrzebne, z tego prostego powodu, że użytkownicy konsol siedzą w pewnym oddaleniu przed dużymi telewizorami i "schodki" są z takiej odległości po prostu niewidoczne. Zupełnie inaczej sprawa wygląda wśród graczy komputerowych, którzy siedzą w niewielkiej odległości od monitora, na którym obraz jest ostry jak brzytwa. Każda niedoskonałość natychmiast wychodzi tu na wierzch i osoby dysponujące sprzętem wartym grube pliki banknotów mają prawo się zirytować, że programiści nie pomyśleli o czymś tak oczywistym jak zaimplementowanie w silniku graficznym gry technologii wygładzania krawędzi.
Wbrew pozorom wyzierające z ekranu piksele jak krowy (schodki) czy migoczące elementy składające sie z linii o dużym kontraście potrafią psuć wrażenie oprawy graficznej, która mogłaby być po prostu lepsza dzięki zastosowaniu AA.
The Last Remnant - jedna z wielu znakomitych gier pozbawionych natywnej obsługi AA
MLAA nie jest technologią, która zapewni zupełnie nową jakość grafiki, ale taką, która ma maskować drobne niedoskonałości wyświetlanego obrazu. Nie należy spodziewać się, że zastosowanie MLAA całkowicie odmieni grę, bo różnice z MLAA i bez AA będą często bardzo subtelne, a wręcz kosmetyczne. Im niższa rozdzielczość, tym brak wygładzania krawędzi jest bardziej dokuczliwy. Gdy już w niedalekiej (?) przyszłości wszyscy będziemy mieć w domu monitory/telewizory o rozdzielczości 2650 x 1600, technologia AA będzie powoli zanikać, ale na dzień dzisiejszy jest ona bardzo przydatna. ;-)
Minusy? Oczywiście są. Jest to technologia PostFX, a więc jeśli zapomnimy wyłączyć jej w sterownikach po rozgrywce, nagle może okazać się, że obraz w naszej przeglądarce (np. IE9) czy w programie został skutecznie rozmyty. Rozwiązaniem na tą dolegliwość powinna być po prostu implementacja MLAA w grach, która byłaby wyłączana po zamknięciu gry. W związku, że jest to wygładzanie nakładane na gotowy obraz, nie zostanie one "uwiecznione" przy pomocy zrzutów ekranowych programu Fraps. Żeby dokonać zrzutu ekranowego z wygładzaniem morfologicznym należy skorzystać z przycisku PrintScreen - który jak wiadomo nie zawsze będzie działać.
Oczywiście NVIDIA nie mogła ścierpieć, że karty Radeon mają funkcjonalność, której nie ma na kartach GeForce. AMD ma swoje MLAA, natomiast "Zieloni" zapowiedzieli już wprowadzenie technologii o niezbyt szczęśliwej (dla Polaków) nazwie SRAA (Subpixel Reconstruction Antialiasing). Wbrew pozorom, z pociesznymi skrótami w branży informatycznej mieliśmy do czynienia dość często. Wystarczy wspomnieć choćby Static Random Access Memory (Static RAM), czyli SRAM, czy też Static Read Only Memory (Static ROM), czyli SROM. :-)
Wprowadzenie obsługi filtrowania morfologicznego przez AMD należy ocenić bardzo pozytywnie. Chociaż technologia w niektórych przypadkach wymaga poświęcenia całkiem sporej ilości mocy karty graficznej, to w ostatecznym rozrachunku wychodzi na duży plus. Czekamy na oficjalne wsparcie dla MLAA w nowych grach.