Kiedy karta graficzna wie lepiej, jak ma wyglądać gra. DLSS 2.0 trudno odróżnić od czarów
Sztuczna inteligencja w grach do tej pory kojarzyła się z symulowaniem naszych przeciwników. Jest ona jednak coraz częściej wykorzystywana do generowania grafiki. Najnowsze algorytmy są niemal niewytłumaczalnie dobre.
Układy GeForce RTX wydają się największym skokiem technicznym w kartach graficznych od czasów pierwszego GeForce’a, nazywanego GeForce 256. Ta legendarna już karta jako pierwsza wprowadziła technologię Transform & Lightning, czyli odciążyła procesor centralny komputera z niemal wszystkich przeliczeń graficznych, nie tylko akcelerując część procesu renderowania, w czym specjalizowały się konkurujące z Nvidią karty firmy 3dfx.
Kolejną istotną rewolucją wydają się wprowadzone do kart graficznych shadery, choć to już niezupełnie pomysł samej Nvidii. Shadery pozwoliły na programową manipulację pikseli, co umożliwiło generowanie złożonych efektów wizualnych przy relatywnie niskim koszcie wydajnościowym.
Reszta? Cóż, wielu będzie wskazywać rozwiązania takie jak HairWorks, G-Sync i mnóstwo innych, korzystnie wpływających na odbiór gier. Nie wydaje mi się jednak bym krzywdził Nvidię opinią, że po T&L i wprowadzeniu shaderów w układach graficznych rosła głównie surowa moc obliczeniowa.
GeForce RTX udowadnia, że Nvidia nadal może tytułować się jako lider innowacji.
Wprowadzone na rynek niemal dwa lata temu układy RTX zaoferowały nam znacznie więcej niż tylko jeszcze wyższą moc obliczeniową i relatywne drobiazgi – takie jak wskazane wyżej za przykłady symulacje włosia czy synchronizację klatek z monitorem. Nvidia zawarła w nich technologie, które śmiało można nazywać przełomowymi – przynajmniej na rynku konsumenckim.
To właśnie układy RTX wprowadziły pod strzechy śledzenie promieni, a więc technikę renderowania obrazu, w którym światło jest w pełni symulowane (co znacząco upraszcza budowanie gry i w efekcie zwiększa jej realizm wizualny). To również technika Variable Rate Shading pozwalająca dynamicznie zmieniać szczegółowość obrazu oraz Mesh Shaders czy Sampler Feedback, pozwalające na daleko idące optymalizacje w procesie renderowania obrazu.
Na dziś Nvidia jest jedynym producentem, który oferuje realizowanie tych technik na poziomie sprzętowym. To się z pewnością zmieni, wszak konkurencja nie śpi. Partner techniczny Sony i Microsoftu zapewni swoje własne implementacje tych technik w ramach uniwersalnych API, takich jak DirectX 12 Ultimate. Sposób ich realizacji jest jednak jeszcze pewną tajemnicą, a i tak RTX-y oferują to od dawna - co oznacza, że Nvidia niemal z pewnością od dawna pracuje nad kolejnymi technologiami, które zapewne pojawią się już niedługo w jej nowych kartach graficznych.
Największa rewolucja kryje się jednak w DLSS. Ten algorytm pierwotnie powstał po to, by wesprzeć proces śledzenia promieni.
Ktoś mógłby ze zdziwieniem zapytać: czemu nie samo śledzenie promieni jest rzeczoną rewolucją? I w zasadzie to pytanie byłoby bardzo zasadne: to właśnie ray tracing docelowo w największym stopniu wpłynie na jakość wizualną gier. Tyle że na razie to pierwsze kroki w rozwijaniu tej techniki na urządzeniach, na które konsumenci mogą sobie pozwolić finansowo. Śledzenie promieni to technika, która została opracowana już wiele dekad temu. Dlaczego więc dopiero teraz się pojawia w naszych komputerach?
Śledzenie promieni światła, symulowanie ich trasy, odbić i tego, jak wpływają na obiekty o różnej fakturze i refleksywności, to zadanie niezwykle złożone, wymagające bardzo dużej mocy obliczeniowej. To ogromny wysiłek nawet dla najszybszych na rynku kart GeForce RTX, mimo iż te zawierają w sobie rdzenie obliczeniowe dedykowane wyłącznie akceleracji przeliczeń związanych z ray-tracingiem.
Nic więc dziwnego, że na razie wśród gier realizujących symulację śledzenia promieni w niemal całym procesie renderowania znajdują się produkcje pokroju Quake’a II czy Minecrafta. Te bardziej złożone wizualnie produkcje stosują ray tracing tylko dla pewnych elementów obrazu – na przykład by symulować odbicia światła w kałużach cieczy – resztę cieniując uproszczonymi metodami. To i tak znacząco wpływa na jakość obrazu, jednak do pełnego śledzenia promieni droga jest dość daleka. Co gorsza, nawet ta częściowa symulacja bardzo obciąża układ graficzny.
Nvidia wykoncypowała więc bardzo nietypowe rozwiązanie. Nazywa się ono DLSS (Deep Learning Super Sampling) i ma ono na celu zwolnienie zasobów procesora graficznego. Wykorzystując technikę deep learningu, potrafi zrekonstruować obraz o niższej rozdzielczości do rozdzielczości natywnej. Innymi słowy, w teorii gra miałaby być renderowana w niższej rozdzielczości, co znacząco odciąża kartę graficzną, a DLSS miał sprawić, by efekt końcowy wyglądał tak, jakby gra od samego początku tworzyła klatki obrazu w rozdzielczości natywnej.
Jak wyszło? Na początku DLSS nie zachwycał.
Technika DLSS 1.0 robiła bardzo duże wrażenie w kontekście swojej innowacyjności i samego pomysłu na działanie. Jednak co do jej skuteczności opinie graczy i recenzentów były dość podzielone. DLSS 1.0 był dostępny w raptem kilku grach – początkowo w Battlefieldzie V i Metro Exodus – i wymagał przeszkolenia z każdą grą z osobna. Nie dało się więc włączyć tego rozwiązania dla dowolnego tytułu. Efekty również nie były do końca powalające.
DLSS 1.0 bez wątpienia działał. Wykorzystując rdzenie Tensor dostępne w układach o architekturze Volta, algorytm stosował Supersampling (jedna z technik antyaliasingu, a więc wygładzania ukośnych krawędzi bocznych wieloboków) korygowany przez wyszkoloną do tego celu sieć neuronową.
Pożądany efekt w teorii został osiągnięty. Korzyści wynikające z renderowania przez GPU istotnie mniejszej liczby pikseli są oczywiste, a zyskaną wydajność można przeznaczyć na dokładniejszy ray tracing (lub do innych celów). Efekt wizualny jednak nie tak do końca powalał. DLSS 1.0 miał duże problemy z oddaniem złożonych wzorów geometrycznych, w efekcie generując niepożądane artefakty na ekranie. Wielu graczy i testerów uznało, że choć pomysł sam w sobie jest świetny, a jego realizacja imponująca, tak lepszą decyzją może okazać się zwykły upscaling.
Na szczęście Nvidia nie umie spoczywać na laurach. Nadal nie rozumiem jak to jest możliwe, że DLSS 2.0 działa tak dobrze.
Zanim uzasadnię ten znajdujący się w powyższym nagłówku pean, najpierw garść technikaliów. DLSS 2.0 został wytrenowany za pomocą serwerów DGX-1 nieco inną metodą od algorytmu pierwszej generacji. Sieć neuronowa została wytrenowana przez Nvidię za pomocą porównywania idealnych graficznie i wyrenderowanych na superkomputerze klatek z gier i zestawienia ich z odpowiednikami w niskiej rozdzielczości. Informacje te są przechowywane w sterowniku karty.
DLSS 2.0 wykorzystuje nowe techniki czasowego sprzężenia zwrotnego i nowy, szybszy model SI, który efektywniej wykorzystuje rdzenie Tensor i wykonuje swe zadania dwukrotnie szybciej niż wcześniejsza wersja, poprawiając liczbę generowanych klatek i usuwając ograniczenia dotyczące obsługiwanych układów GPU, ustawień i rozdzielczości. Nie wymaga też ręcznego uczenia algorytmu w każdej z gier. Mechanizm potrzebuje tylko informacji od silnika gry (a więc i gra musi go obsługiwać) o wektorach ruchu, które opisują, w jakim kierunku obiekty sceny poruszają się z klatki na klatkę.
Efekty są powalające.
-Każda dostatecznie zaawansowana technologia jest nieodróżnialna od magii – jak głosi jedno z trzech praw wizjonerskiego Arthura C. Clarke’a. I trudno mi inaczej skomentować efekty eksperymentu przeprowadzonego przez Digital Foundry – najrzetelniejszego i najwyżej cenionego medium traktującego o technologii gier.
Redakcja DF postanowiła sprawdzić DLSS 2.0 w praktyce, na przykładzie obsługującej mechanizm gry Control. Szczegółów testu streszczać nie chcę, zainteresowanych odsyłam do materiału. Pragnę tylko wskazać kluczową z naszego punktu widzenia obserwację. Obraz w Full HD przekonwertowany przez DLSS 2.0 do Ultra HD cechował się wyższą szczegółowością i jakością grafiki niż obraz wyrenderowany natywnie w Ultra HD. Pozwolę, by to wsiąkło, i napiszę jeszcze raz: sztuczna inteligencja Nvidii zapewnia lepsze efekty niż silnik gry. To absolutnie niebywałe.
Pokazem mocy DLSS 2.0 jest pierwotnie optymalizowana pod układy graficzne obecne w PlayStation 4 gra Death Stranding. Włączenie mechanizmu z tej grze umożliwia uzyskanie na każdej karcie graficznej GeForce RTX ponad 100 klatek na sekundę w rozdzielczości 1440p lub ponad 60 kl./s w rozdzielczości 4K. Nic dziwnego, że nabywcy tych kart graficznych otrzymują ją jako nieodpłatny dodatek, pozwalający przetestować drzemiącą w nich moc obliczeniową.
I szalenie istotne.
Gra eksploracyjna Deliver Us the Moon również obsługuje DLSS 2.0, a także śledzenie promieni. Na układzie RTX 2060 z włączonym ray tracingiem i w rozdzielczości Full HD działa średnio w około 40 kl./s. Przy włączonym DLSS 2.0 (a więc kiedy gra renderowana jest w HD, a następnie rekonstruowana do Full HD przez algorytm) liczba klatek na sekundę wzrasta do około 75. Warto przy tym podkreślić, że przy DLSS 2.0 ustawionym na tryb wysokiej jakości. DLSS 2.0 oferuje bowiem trzy tryby jakości obrazu (Quality, Balanced, Performance) kontrolujące rozdzielczość renderowania. Tryb Performance w teorii może nawet zwielokrotnić liczbę klatek na sekundę przy niewielkim wpływie na jakość obrazu.
Biorąc pod uwagę fakt, że wyzwania stawiane przed nowoczesnymi kartami graficznymi nie są małe, DLSS 2.0 jest zaiste rewolucyjne. Zachłyśnięci nowościami i reklamami słusznie oczekujemy komfortowej zabawy w rozdzielczości Ultra HD przy co najmniej 60 kl./s i oczywiście z przynajmniej częściowym śledzeniem promieni. To jeszcze nie jest możliwe decydując się na tradycyjne metody renderowania obrazu typu pixel perfect. Wszak to właśnie rozdzielczość, a więc liczba pikseli na ekranie, w największym stopniu decyduje o obciążeniu procesora graficznego.
DLSS 2.0 ten problem w zasadzie rozwiązuje. Silnik gry może tworzyć kolejne klatki obrazu w Full HD lub 1440p, mając cztero- lub dwukrotnie mniej pikseli do przetworzenia, a więc zyskując zapas mocy do wykorzystania w ray tracingu czy zwiększaniu klatkażu. Utracona szczegółowość obrazu jest bezbłędnie uzupełniana przez DLSS 2.0, czyli w efekcie uzyskujemy płynną grę w 4K na karcie graficznej, której cena nie jest liczona w dziesiątkach tysięcy złotych. A jak wykazują testy, DLSS 2.0 nie tylko nie degraduje jakości, co wręcz w magiczny sposób ją poprawia.
GeForce RTX przetarł szlak, którym będzie podążać branża.
Sen, w którym technika śledzenia promieni jest realizowana we wszystkich grach w pełni, przy stosownej płynności i rozdzielczości, to jeszcze mrzonka. Na razie układy RTX tylko otworzyły drzwi do nowego, lepszego świata, w którym światło jest symulowane, a w efekcie oprawa graficzna zyskuje niespotykany wcześniej realizm. To na dziś jedyne procesory, które w ogóle są w stanie podjąć się tego zadania.
Gdyby rozwój innowacji graficznych szedł przewidywalnym tempem, musielibyśmy czekać jeszcze wiele lat i wiele generacji układów scalonych, by ray tracing był wykorzystywany szerzej niż tylko w kluczowych elementach obrazu. DLSS 2.0 i jego kolejne wersje ten czas znacząco skrócą – a przecież zyskaną za jego sprawą wydajność można też wykorzystać do innych celów niż śledzenie promieni, wystarczy zwrócić uwagę, jak pomaga przy wskazanym wyżej Death Stranding. Już dziś sprawia, że gry mogą wyglądać pięknie i działać szybko na kartach graficznych dla klienta masowego. Co będzie dalej? Biorąc pod uwagę niespodziewaną skuteczność DLSS 2.0, trudno przewidzieć. Z pewnością jednak jest czego wyczekiwać, i to z niemałą ekscytacją.
Nie przegap nowych tekstów. Obserwuj Spider's Web w Google News.
*Tekst powstał przy współpracy z morele.net