Piotr Gołąb | 8 marca 2019, 14:01

Nvidia Variable Rate Shading − sprawdzamy, jak działają nowe techniki cieniowania w kartach Turing

Variable Rate Shading pod lupą

Nvidia Variable Rate Shading

Nvidia podaje, że wykorzystując algorytmy Variable Rate Shading, zyskujemy na wydajności, nie tracąc przy tym nic na jakości generowanego obrazu. Postanowiliśmy bliżej przyjrzeć się tym algorytmom i sprawdzić, czy założenia Nvidii są możliwe do spełnienia i czy faktycznie gry obsługujące te techniki działają szybciej.

Mimo że techniki Variable Rate Shading zostały opracowane już dawno temu i na wielu prezentacjach widzieliśmy długą listę gier, które mają je wspierać, jak na razie VRS można sprawdzić tylko w grze Wolfenstein II: The New Colossus. Tytuł ten wspiera dwie techniki: Content Adaptive Shading oraz Motion Adaptive Shading. Jak pisaliśmy na poprzedniej stronie, żeby skorzystać z tych algorytmów, trzeba mieć najnowszą kartę graficzną Nvidii z rdzeniem Turing, a więc grono potencjalnych użytkowników jest mocno zawężone. 

Do porównania jakości obrazu wykorzystana zostanie oczywiście gra Wolfenstein II: The New Colossus. Zanim jednak do tego przejdziemy, chciałbym zaprezentować, jak działa Content Adaptive Shading i Motion Adaptive Shading w czasie rzeczywistym w Wolfenstein II: The New Colossus. Udało nam się uruchomić warstwę (ang. overlay) odpowiedzialną za wyświetlanie informacji na temat tych technik.

Prezentowane materiały wideo zostały nagrane w rozdzielczości 1920x1080 pikseli i są podzielone na 8100 stref (16x16 pikseli), które w czasie rzeczywistym pokazują wykorzystanie algorytmów Content Adaptive Shading.

  • Obszary podświetlone kolorem niebieskim wykorzystują cieniowanie 1x2 lub 2x1 piksel.
  • Obszary oznaczone na zielono używają cieniowania 2x2 piksele.
  • Kolor żółty odpowiada za cieniowanie 2x4 lub 4x2 piksele.
  • Kratki niepokolorowane cieniują piksele w stosunku jeden do jednego.
  • Białe kropki w niektórych kratkach oznaczone są jako transpozycje; domyślam się, że może mieć to coś wspólnego z przeniesieniem informacji z jednej klatki animacji do kolejnej.

W Wolfenstein II: The New Colossus do wyboru mamy trzy podstawowe tryby Content Adaptive Shading: Jakość, Zbalansowany i Wydajność. Dodatkowo możemy całkowicie wyłączyć CAS lub wybrać tryb niestandardowy, w którym jest możliwość sprawdzenia, jak poszczególne ustawienia wpływają na działanie tej funkcji.

Nvidia Adaptive Shading

 

Nvidia Adaptive Shading w Wolfenstein II: The News Colossus − schemat działania

Nvidia Adaptive Shading tryb Jakość

 

Nvidia Adaptive Shading tryb Zbalansowany

 

Nvidia Adaptive Shading tryb Wydajność

Po obejrzeniu materiałów wideo bardzo łatwo możemy zobrazować sobie działanie algorytmów VRS. Widać wyraźnie, że wszędzie, gdzie dochodzi do wyświetlania w miarę jednolitych powierzchni w scenie, algorytmy VRS są intensywnie wykorzystywane. Wraz ze zmianą trybu Nvidia Adaptive Shading zmienia się natężenie użycia tych technik.

W trybie Zbalansowanym w głównej mierze wykorzystywane jest cieniowanie 2x2 piksele i 2x1 piksel, czyli dwa tryby stawiające na jak najmniejszą utratę jakości obrazu. Pojawiają się też obszary z użyciem cieniowania 4x2 piksele − w przykładowym miejscu testowym jest to powierzchnia na broni, która przez większość czasu jest zacieniona.

Zmiana ustawienia Nvidia Adaptive Shading na tryb Wydajność odmienia stosunek użycia cieniowania 2x1 i 2x2 piksele względem 2x4 piksele. Teraz widzimy, że w głównej mierze wykorzystywany jest tryb cieniowania 2x4 piksele. Jednak nawet w tym trybie nie pojawiają się kwadraty czerwone, które cieniują obraz w trybie 4x4 piksele, co jest o tyle znaczące, że możemy podejrzewać, iż utrata jakości obrazu z wykorzystaniem tego trybu jest duża i twórcy postanowili ograniczyć współczynnik cieniowania do 4x2 piksele.

W ustawianiu Jakość użycie algorytmów Content Adaptive Shading oraz Motion Adaptive Shading jest najmniejsze. Klatka animacji w większości wyświetlana jest w trybie jeden do jednego piksela, a elementy, w wypadku których dochodzi do stosowania algorytmów VRS, używają prawie wyłącznie dwóch najmniej stratnych trybów cieniowania. Sporadycznie możemy zaobserwować na ekranie kratki wypełnione żółtym kolorem. 

Jakość

Przejdźmy zatem do porównania jakości obrazu. Bo dopiero teraz, mając wizualne przedstawienie działania algorytmów VRS, wiemy, na jakie elementy generowanej klatki animacji należy skierować nasz wzrok, żeby zaobserwować ich działanie.

Nvidia Adaptive Shading w Wolfenstein II: The News Colossus − Jakość

Do porównania jakości generowanej grafiki wybraliśmy scenę, w której patrzymy się na podłogę w łodzi podwodnej (czerwonym kwadratem oznaczyliśmy miejsce próbki dla porównania VRS). Wybór tej sceny podyktowany był tym, że są to preferowane warunki dla technik VRS i na powierzchni podłogi nie zachodzą duże zmiany dotyczące koloru poszczególnych pikseli, podłoga nie jest też złożona geometrycznie.

Nvidia Adaptive Shading

Klatka animacji z zaznaczeniem miejsca próbki VRS

Nvidia Adaptive Shading

Kliknij by powiększyć

 

Niestety, nie jest prawdą, że techniki Variable Rate Shading nie wpływają na końcową jakość generowanej grafiki. Z drugiej strony nie ma jednak co demonizować, utrata jakości obrazu nie jest duża. W pierwszej scenie testowej najłatwiej zaobserwować ją na metalowych płytach z wzorem w romby. W trybach Zbalansowany i Jakość utrata jakości grafiki jest prawie niedostrzegalna. Dopiero przełączenie się w tryb Wydajność powoduje, że od razu zauważymy wyraźny spadek jakości prezentowanego obrazu.

Druga grafika to początek naszego miejsca testowego, którego używamy podczas testów GPU. W porównaniu z pierwszą sceną testową druga jest dużo bardziej skomplikowana graficznie i przedstawia realne warunki, w jakich będziemy grać. Wykorzystujemy ją po to, żeby sprawdzić, czy utrata jakości grafiki będzie dla gracza zauważalna. 

Nvidia Adaptive Shading

Klatka animacji z zaznaczeniem miejsca próbki VRS

Nvidia Adaptive Shading

Kliknij by powiększyć 

 

Podobnie jak w pierwszej scenie użycie dowolnego z dwóch trybów nastawionych na lepszą jakość wyświetlanej grafiki (Jakość, Zbalansowany) nie powoduje dużej utraty jakości. W trybie Zbalansowanym możemy już zauważyć mniej wyraźne szczegóły, widać to dobrze szczególnie w tych miejscach, gdzie jest ich dużo − na przykład na żłobieniach pokręteł czy napisach na lunecie. Zmiany są również widoczne nawet na dużych obiektach, choć uczciwie podchodząc do sprawy − nie przeszkadza to w grze, odczucia są w obu wypadkach bardzo zbliżone. Natomiast włączenie trybu Wydajność  już w widoczny sposób wpływa na jakość wyświetlanego obrazu. Żłobienia na pokrętłach tracą prawie całą szczegółowość, krawędzie są postrzępione − w trybie tym bardzo dobrze widać utratę jakości.

Dla ciekawych przygotowaliśmy archiwum z grafikami z porównania jakości w postaci bezstratnych plików png