Jak zmieniał się rozwój grafiki na przestrzeni lat? API DirectX, Ray Tracing i Path Tracing, a w końcu software górujący nad hardware
Kilka tygodni temu świętowaliśmy nasze 18 urodziny. Taki długi okres w branży komputerowej to niemal wieczność, na co wpływ ma nieustanny rozwój, zarówno podzespołów komputerowych, jak i również software'u, którego celem jest wspomaganie hardware'u oraz umożliwienie wydobycia ze sprzętu pełnego potencjału. Myślę, że mnóstwo naszych Czytelników zgodzi się, że jeszcze kilka, kilkanaście lat temu byliśmy świadkami znacznie prężniej rozwijanego hardware'u i to właśnie komponenty górowały nad warstwą software'ową. Dzisiaj jesteśmy z kolei świadkami sytuacji odwrotnej - to software zdaje się być numerem jeden, od którego zależy w dużej mierze, jak chociażby gry będą się finalnie prezentowały na współczesnych kartach graficznych. W ramach kontynuacji cyklu okołorocznicowego tym razem przypominamy rozwój zarówno hardware'u, jak i software'u w ostatnich 18 latach.
Autor: Damian Marusiak
Jeszcze przed wejściem w XXI wiek, byliśmy świadkami szybkiego rozwoju grafiki w grach komputerowych. Wszyscy z pewnością pamiętają czasy pierwszego i drugiego DOOM-a, a później premierę Unreal w 1998 roku. Korzystający z wczesnej wersji silnika Unreal Engine, oferował rozwiązania graficzne bardzo rzadko spotykane w tamtym czasie. Jednak już wtedy hardware szedł w parze z oprogramowaniem i to ostatnie było istotnym motorem napędowym dla rozwoju grafiki w grach. Unreal z 1998 roku korzystał jeszcze z API 3Dfx Glide, aczkolwiek nie brakowało również obsługi OpenGL. Sam silnik graficzny, napędzający Unreal z 1998 roku, umożliwiał nie tylko zaoferowanie znacznie bogatszego (w tamtym czasie) oświetlenia, ale również początkową formę filtrowania tekstur oraz samego teksturowania z przedstawieniem bardziej szczegółowych powierzchni, zwłaszcza w miarę zbliżania się postaci do takiego przestrzennego obiektu (to mogło być po prostu podłoże lub jakiś budynek). Unreal stał się wręcz protoplastą rozwiązań, które w kolejnych latach były już standardem w grach opartych na trójwymiarowej grafice. Przełom XX. oraz XXI. wieku to także fala popularności gier Quake oraz Quake II, robiące prawdziwą furorę zarówno pod względem wizualnym jak i gameplayowym. Ten drugi posłużył lata później jako swoista platforma do pokazu Path Tracingu.
Ostatnie 18 lat przyniosło nam nie tylko rozwój podzespołów komputerowych pod względem czystego hardware'u, ale również software'u. Dzisiaj to oprogramowanie zdaje się górować nad mocą obliczeniową, co widać doskonale na przykładzie współczesnych gier wideo.
Test Black Myth: Wukong na karcie graficznej NVIDIA GeForce RTX 4080. Ta gra zmasakruje Wasze komputery
W kolejnych latach to Microsoft zaczął coraz mocniej inwestować w rozwój swojego API (interfejs programowania aplikacji - coś w rodzaju zbioru zasad opisujących, w jaki sposób programy komunikują się ze sobą) DirectX, którego integralną częścią jest Direct3D. Ten ostatni odpowiada za renderowanie trójwymiarowej grafiki wszędzie tam, gdzie ważne jest utrzymanie wysokiej wydajności. Stąd właśnie Direct3D znalazł zastosowanie przede wszystkim w grach wideo, które miały działać na systemie operacyjnym Microsoft Windows. W pierwszych latach rozwoju, API DirectX miał dwa osobne renderery: Direct3D dla trójwymiarowej grafiki oraz DirectDraw dla dwuwymiarowej. Od czasu wprowadzenia DirectX 8, Direct3D wchłonął możliwości DirectDraw, umożliwiając renderowanie zarówno w 2D, jak i 3D. Mniej więcej w podobnym czasie co premiera wspomnianej gry Unreal (1998 rok), Microsoft wprowadził API DirectX 6, które miało możliwość teksturowania, a już w kolejnym roku (1999) na rynek trafił DirectX 7, który w pewnym stopniu dostosował się do karty graficznej NVIDIA GeForce 256. DirectX 7 oferował bowiem wsparcie dla techniki Transform, clipping and lighting (T&L), będącą metodą generowania grafiki w 3D poprzez tworzenie dwuwymiarowego widoku trójwymiarowej sceny oraz zmianę kolorów poszczególnych powierzchni na widocznej scenie w ramach wykorzystania dostępnych informacji o oświetleniu. Karta graficzna NVIDIA GeForce 256 była pierwszym akceleratorem GPU na konsumenckim rynku PC, na której T&L działało sprzętowo.
NVIDIA GeForce 256 (1999) sprzętowo obsługiwała metodę generowania grafiki 3D o nazwie Transform, clipping and lighting (T&L), tym samym w pełni wspierając API DirectX 7
Path Tracing w Cyberpunk 2077 i Alan Wake II - Czy GeForce RTX 4080 to minimum nawet z NVIDIA DLSS i Frame Generation?
Kolejną rewolucją w rozwoju API DirectX był DirectX 8 wraz z Direct3D, wydany już w listopadzie 2000 roku. Nowa wersja interfejsu programowania aplikacji otrzymała bowiem możliwość programowego korzystania z Pixel Shader oraz Vertex Shader. Shader sam w sobie od początku był niewielkim programem służącym w renderowaniu grafiki 3D do opisywania właściwości pikseli oraz wierzchołków. Są to bardziej zaawansowane metody w porównaniu do T&L i finalnie Transform, clipping and lighting zostało zastąpione właśnie przez duet Pixel / Vertex Shader. W czasach wprowadzania DirectX 8 Pixel Shader odpowiadał za wyliczenie kolorów pikseli i był używany głównie w celu odpowiedniego oświetlenia danej sceny. Vertex Shader (cieniowanie wierzchołkowe) odpowiadał z kolei za transformację położenia wierzchołka w wirtualnej przestrzeni 3D na współrzędne 2D na ekranie i był zazwyczaj punktem wyjściowym dla dalszej rasteryzacji. W późniejszym czasie zniknął sztywny podział na Pixel Shader oraz Vertex Shader, a kolejne generacje kart graficznych, zarówno od NVIDII, jak i od ATI (w tamtym okresie, potem od AMD po przejęciu ATI) posiadały ujednolicone jednostki obliczeniowe, które odpowiadały za te same funkcje. W przypadku NVIDII nazywano je Unified Shaders, z kolei u ATI / AMD było to Stream Processors (procesory strumieniowe).
Działanie Vertex Shader (Źródło: Wikipedia)
Test wydajności Alan Wake II - Wysokie wymagania, ale grafika rewelacyjna. Prawdziwy next-gen potrzebuje mocnego sprzętu
Grafika w grach wideo w kolejnych latach ulegała stopniowej poprawie, ale na prawdziwą rewolucję czekaliśmy do 2004 roku. To wprawdzie jeszcze jakiś czas przed narodzinami PurePC.pl, ale nie sposób nie wspomnieć o kilku grach komputerowych, jakie wówczas wychodziły na rynek. W 2004 roku wiele osób czekało przede wszystkim na DOOM 3, który względem DOOM czy DOOM 2 przyniósł olbrzymi skok jakości oprawy graficznej. Za oprawę odpowiadał silnik id Tech 4 oraz API OpenGL (choć jednocześnie z wymogiem instalacji bibliotek DirectX, głównie pod kątem audio, Direct3D nie był bowiem wykorzystywany w tej konkretnej grze). Engine id Tech 4 w pewnym momencie przeszedł bardzo duże zmiany względem id Tech 3, począwszy od przepisania silnika renderującego od zera. Było to związane m.in. z podjętą decyzją o przejściu z języka programowania C na C++. Czym charakteryzował się id Tech 4? Jak na tamte czasy, rewolucją było generowanie oświetlenia oraz cieni w czasie rzeczywistym. To właśnie ta właściwość id Tech 4 w tamtym czasie spowodowała spory apetyt na moc obliczeniową ówczesnych kart graficznych i jednocześnie uniemożliwiała tworzenie dużych, otwartych przestrzeni. Zamiast tego DOOM 3 charakteryzował się znacznie mniejszymi lokacjami, czasami wręcz klaustrofobicznymi, z mocnym naciskiem na ograniczanie źródeł światła. Gra mimo wszystko w swoim czasie zachwycała jakością oprawy graficznej i ustanowiła wręcz standardy tego, jak powinno się tworzyć klimatyczne miejscówki w grach, gdzie oświetlenie oraz cienie są generowane w czasie rzeczywistym. DOOM 3 z pewnością zyskałby jeszcze więcej w oczach graczy, jednak raptem kilka miesięcy wcześniej na rynek trafiła gra, o której wcześniej mało kto słyszał, a kiedy już zadebiutowała, pod względem wizualnym rozłożyła inne gry na łopatki... dosłownie.
DOOM 3 zasłynął z silnika graficznego id Tech 4, wprowadzającego m.in. generowania oświetlenia oraz cieniowania w czasie rzeczywistym
Test wydajności Cyberpunk 2077: Phantom Liberty PC. Jak bardzo Cyberpunk 2077 Patch 2.0 podnosi wymagania sprzętowe?
Niespecjalnie wówczas znane graczom, niemieckie studio Crytek, stworzyło grę o nazwie Far Cry (niedługo po premierze prawa do FC zostały sprzedane Ubisoftowi). Bazą dla przygotowania tego tytułu okazał się autorski silnik graficzny o nazwie CryEngine. Początkowo silnik ten miał być tylko demem technologicznym, prezentującym ówczesne możliwości kart graficznych NVIDIA GeForce. Finalnie został wykorzystany do stworzenia pierwszej części Far Cry'a. Fabularnie tytuł może nie porywał, ale z drugiej strony otrzymaliśmy prawdziwą, graficzną rewolucję, wręcz niespotykaną w tamtym czasie. Tam, gdzie DOOM 3 był krytykowany (brak dużych lokacji), tam brylował Far Cry, oferując nam piękną, rajską i znacznie bardziej otwartą wyspę, po której swobodnie mogliśmy się poruszać. Wysoka jakość oświetlenia, świetnej jakości cieniowanie, teksturowanie oraz bogactwo roślinności spowodowało, że nie jednej osobie oczy niemal nie wypadły z gałek ocznych. Niespodziewanie CryEngine stał się synonimem wysokiej jakości grafiki w grach PC oraz prawdziwym benchmarkiem dla debiutujących w tamtym okresie kart graficznych. CryEngine odpowiadał jednak nie tylko za oświetlenie, roślinność czy tekstury. Charakteryzował się również wyjątkowo zaawansowaną fizyką, umożliwiającą nie tylko swobodne przesuwanie przedmiotów, ale również destrukcję otoczenia na niespotykaną wcześniej skalę. W końcu CryEngine wprowadził także inny, rewolucyjny element - rozwiniętą sztuczną inteligencję przeciwników, dzięki której starcia były bardzo emocjonujące. Warto dodać, iż Far Cry działał na API DirectX 9 i Direct3D 9, które również wprowadziły mnóstwo usprawnień względem wcześniejszych wersji API i wspólnie z silnikiem CryEngine umożliwiły stworzenie tak dobrze prezentującej się gry wideo na PC. Prawdopodobnie największym przegranym w tamtym roku był Half-Life 2. Wyszedł kilka miesięcy po Far Cry i DOOM 3, przez co nie zrobił już tak dużego wrażenia w kontekście jakości grafiki. Oczywiście, gra nadal prezentowała się świetnie jak na 2004 rok, ale nowatorskie rozwiązania zdążyły już wcześniej pojawić się właśnie w dwóch pozostałych grach.
Test wydajności Cyberpunk 2077 Patch 1.62 RT Overdrive - Wyszedł path, będzie płacz... chyba że masz GeForce RTX 4000
Na kolejną olbrzymią rewolucję w jakości grafiki w grach PC musieliśmy poczekać do następnej premiery od studia Crytek. Niemiecki producent chciał stworzyć coś, co pokaże pełny potencjał podzespołów komputerowych i ustanowi nowy standard na kolejne lata. Dziełem, któremu to się udało, był Crysis, wydany w 2007 roku. Jak widać zatem, w pierwszej dekadzie XXI wieku wystarczyło nieco ponad 3 lata, by wypuścić na rynek dzieło, które wizualnie zmiotło wszelką konkurencję i która nawet wiele lat po premierze wciąż prezentowało się przynajmniej dobrze. Crysis jest również dla wielu punktem zwrotnym - momentem, po którym nie udało się już nigdy wprowadzić tak daleko idącej rewolucji w kwestii generowania grafiki komputerowej.
Test wydajności Quake II - Path tracing na API Vulkan wstrząsa...
Test wydajności Quake II RTX - Ray tracing ma swoje wymagania
Crysis w pełni korzystał z bibliotek DirectX 10. Oficjalnie to właśnie pod API DirectX 10 można było uruchomić maksymalne ustawienia graficzne. Realnie zatem pełny potencjał grafiki w grze miał być oferowany wyłącznie na systemie Windows Vista (DX10 nie był obsługiwany przez wcześniejsze wersje systemu). Na szczęście twórcy z Crytek nie zablokowali się wyłącznie na DirectX 10, umożliwiając także uruchomienie gry z pomocą DirectX 9, a więc i na systemie chociażby Windows XP, który w tamtym czasie był najpopularniejszym systemem Microsoftu. Nie zmienia to jednak faktu, że gra charakteryzowała się bardzo wysokimi wymaganiami sprzętowymi. Crysis wręcz wyprzedzał swoje czasy i wtedy wzrost wymagań był w pełni uzasadniony. Nie można tego samego powiedzieć o jakiś 99% gier, które wychodziły po 2010 roku aż dotąd.
DirectX 12 Ultimate - rozbudowane API ze wsparciem dla DXR 1.1
Crysis wykorzystywał silnik graficzny CryEngine 2 (ten sam wykorzystano potem także w samodzielnym dodatku Crysis: Warhead), który był rozwinięciem pierwszej generacji. I nie mówię tutaj o zwykłej ewolucji. CryEngine 2 oferował nieporównywalnie wręcz lepszą jakość oprawy graficznej. Przepiękne pejzaże rajskiej (choć ekstremalnie niebezpiecznej) wyspy, bardzo wysoką jakość roślinności, tekstur, cieni i oświetlenia, a także znacznie bardziej rozwiniętą fizykę (fizyka była tutaj liczona na shaderach w kartach graficznych, odciążając chociażby procesor) oraz jeszcze lepszą sztuczną inteligencję. Jakie efekty graficzne oficjalnie były dostępne tylko za pośrednictwem bibliotek DirectX 10? Mowa o miękkich cieniach, załamaniach promieni świetlnych na powierzchni wody oraz ogólnie promieniach światła przepuszczanych przez np. korony drzew. Mowa o oficjalnej dostępności, ponieważ dość szybko się okazało, że efekty te w ramach ustawieniach Very High można było z powodzeniem uruchomić na systemie Windows XP z bibliotekami DirectX 9. Posunięto się zatem do małego oszustwa, by zachęcić do przejścia na system Windows Vista oraz DirectX 10, podczas gdy już DirectX 9 był tak rozwinięty, iż w rzeczywistości nie było takiej potrzeby.
Crysis w 2007 roku to była prawdziwa rewolucja w kwestii generowania grafiki w grach na PC
NVIDIA DLSS 3.5 z Ray Reconstruction - nowa wersja techniki udoskonali jakość śledzenia promieni na kartach GeForce RTX
Kolejną istotną iteracją Direct3D oraz API DirectX był DirectX 11 / Direct3D 11, wydany przez Microsoft w październiku 2009 roku (chwilę przed premierą Windows 7). Ta wersja API utrzymała się na rynku gier wideo wyjątkowo długo i to nawet po premierze kolejnej wersji, czyli DirectX 12, powstawało wiele gier, które bazowały właśnie na tym standardzie. Jedną z kluczowych nowości DirectX 11 oraz Direct3D 11 była implementacja teselacji (tessellation), czyli metody renderowania polegającej na dzieleniu wygenerowanych (podczas tworzenia obrazu 3D) wielokątów na mniejsze, sprawiając, że wyświetlany obiekt mógł być dokładniej i wierniej odwzorowany. Teselacja była jedną z głównych nowości Direct3D 11 i bez odpowiednich kart graficznych (takich, które w pełni obsługiwały nowe biblioteki w tamtym czasie) nie można było skorzystać z jej pełnego potencjału. Mowa tutaj o kartach NVIDIA GeForce GTX 400 i nowszych (architektura Fermi) oraz AMD Radeon HD 5000 (architektura TeraScale 2 / seria Evergreen). API DirectX 11 postawiło również większy aspekt na wykorzystanie wielordzeniowych procesorów. DirectX 11 nie był jednak idealny, o czym przekonali się zwłaszcza posiadacze kart AMD Radeon. API charakteryzowało się bowiem silnym narzutem na sterownik, co w znacznie mniejszym stopniu oddziaływało na karty NVIDIA GeForce. Spora część gier opartych na DX11 prezentowało lepszą wydajność właśnie na układach NVIDII. Jednym z większych osiągnięć w branży gier w czasie życia DirectX 11 był Wiedźmin 3: Dziki Gon od CD Projekt RED. Łączył on w sobie wysoką jakość oprawy graficznej na PC (zwłaszcza na maksymalnych ustawieniach i to pomimo widocznego downgrade'u, jaki zaliczyła gra) z w pełni otwartym światem oraz angażującą fabułą. Gra okazała się na tyle dobra, że pomimo ponad 9 lat na karku jest nadal bardzo popularna.
Wiedźmin 3: Dziki Gon był jednym z głośniejszych przykładów downgrade'u graficznego, ale wciąż na maksymalnych ustawieniach prezentował się co najmniej solidnie. W 2022 roku doczekaliśmy się wersji Next-gen, wprowadzającej obsługę Ray Tracingu na PC, dzięki czemu gra jeszcze bardziej zyskała na jakości grafiki
AMD Fluid Motion Frames 2 oficjalnie zaprezentowane. Nowa wersja generatora klatek skorzysta z optymalizacji AI
Rozwiązaniem bolączek DirectX 11 miał być jego następca - DirectX 12 wraz z Direct3D 12. W późniejszym czasie ukazała się również jego bardziej rozbudowana wersja o nazwie DirectX 12 Ultimate, z których korzystają współczesne gry. DirectX 12 to niskopoziomowy interfejs programowania, którego nadrzędnym celem miało być zmniejszenie narzutu na sterownik i tym samym obniżenie wymagań dla procesorów. DirectX 12 w zamyśle miał usprawnić proces implementacji własnych list poleceń oraz buforów na procesorach graficznych (GPU), co wpływało na efektywniejsze wykorzystywanie zasobów w ramach wprowadzania obliczeń równoległych. Przez długi czas jednak DirectX 12 było implementowane w bardzo nieoptymalny sposób, bardziej przypominając pokraczną nakładkę na DirectX 11 niż coś w pełni stworzonego od podstaw. Debiut DirectX 12 przypadł na lipiec 2015 roku, wraz z systemem Windows 10. Potrzebne były jednak kolejne lata, by gry w znacznie lepszy sposób zaczęły korzystać z DirectX 12. Przez dłuższy czas tym razem to NVIDIA miała problem z DX12, ponieważ karty graficzne GeForce GTX bardzo głęboko siedziały jeszcze w DX11, a wprowadzanie pełnej obsługi DX12 było raczej umowne (zamiast pełnej obsługi, wykorzystywane były tylko niektóre elementy API). Z tego względu przykładowo generacja Kepler czy Maxwell nie były w pełni kompatybilne z DirectX 12. Trochę lepiej wyglądało to przy Pascalach (GeForce GTX 10), jednak dopiero od czasu wprowadzenia układów Turing (GeForce RTX 20) można mówić o pełnej implementacji funkcjonalności DirectX 12. Odwrotnie było w przypadku kart AMD Radeon, które znacznie szybciej dostosowały się do możliwości najnowszego API i bibliotek od Microsoftu.
Intel XeSS 1.3 - nadchodzi nowa wersja techniki upscalingu obrazu. Wśród głównych zalet lepsza jakość i wyższa liczba FPS-ów
Doom 2 otrzymał nieoficjalne wsparcie dla Path Tracingu. Całkowicie zmienia on wizualnie niemal 30-letnią grę
Jednym z przykładów mizernie zaimplementowanego wsparcia dla DirectX 12 w kartach graficznych NVIDIA GeForce GTX z generacji Kepler czy Maxwell była gra Ashes of the Singularity. To pierwszy tytuł, który wykorzystywał możliwości DirectX 12 (i nie był jednocześnie tylko fatalnie zaimplementowaną nakładką na DirectX 11) i w tym wypadku bardzo duży potencjał wykazywały nie karty NVIDII, a AMD, gdzie wzrosty wydajności były nawet kilkudziesięcioprocentowe. W przypadku NVIDII wydajność albo była niezmieniona, albo wręcz była niższa w porównaniu do wyników na bazie DirectX 11. Takich przypadków było jednak więcej (gdy to AMD otrzymywało wyższy wzrost wydajności po przejściu na DX12), toteż NVIDIA w końcu była zmuszona przesiąść się z wygodnego dla siebie DirectX 11 na nowszy standard DirectX 12. Wraz z rozwojem tego ostatniego, w grach wideo zaczęto stawiać coraz mocniejszy akcent na technologie Ray Tracingu oraz Path Tracingu i jest to obecnie chyba najważniejsza przyczyna tego, że to właśnie software zaczął coraz mocniej wyprzedzać możliwości sprzętu.
Recenzja Crysis - Najładniejsza strzelanina wszech czasów
DirectX 12 wraz z Direct3D 12 posiadają bowiem biblioteki DXR, co pozwalało na implementację Ray Tracingu w grach w systemie Microsoft Windows. Zostało to w końcu wykorzystane przez NVIDIĘ, która w 2019 roku ogłosiła nową serię kart graficznych - GeForce RTX 2000 - bazujących na architekturze Turing i posiadających pierwszą generację sprzętowych rdzeni RT, służących do akceleracji tego typu obliczeń. Był to punkt zwrotny, ponieważ NVIDIA od tego momentu zaczęła bardzo mocno promować RT kosztem mniejszych wzrostów wydajności w czystej rasteryzacji. Dobrze zaimplementowany Ray Tracing może znacznie uprościć proces przygotowania oprawy wizualnej gry, jednak z drugiej strony jest to rozwiązanie pochłaniające wielokrotnie więcej mocy obliczeniowej niż rasteryzacja. Czym w ogóle jest Ray Tracing? Choć śledzenie promieni w czasie rzeczywistym zostało wprowadzone wraz z kartami NVIDIA GeForce RTX 2000, sama technologia jest znacznie starsza, a po prostu przed 2019 rokiem nie była wykorzystywana w grach komputerowych. Ray Tracing to technika generowania realistycznych obrazów 3D, która opiera się na analizowaniu tych źródeł światła, które trafiają bezpośrednio do obserwatora.
Zasada działania Ray Tracingu (źródło: Wikipedia)
Jaki sprzęt do Crysis 3 - Test 20 kart graficznych AMD i NVIDIA
Wiedźmin 3: Dziki Gon - Test procesorów i kart graficznych
W pierwszej kolejności z punktu, w którym znajduje się obserwator, wyprowadzany jest promień pierwotny, przecinający rzutnię. W dalszej kolejności wyszukiwany jest najbliższy punkt przecięcia z obiektami znajdującymi się w danej scenie, a następnie dla każdego źródła światła zdefiniowanego w takiej scenie wyznaczana jest jasność, zgodnie z wykorzystywanym modelem oświetlenia. Zaletą śledzenia promieni jest możliwość przeprowadzania obliczeń równoległych, ponieważ każdy promień może być przetwarzany niezależnie od innych - dotyczy to zarówno promieni pierwotnych, jak również promieni wtórnych. Metoda ta, tak jak wspomnieliśmy, jest jednak bardzo wymagająca dla kart graficznych i to pomimo tego, że pierwsza generacja rdzeni RT w kartach graficznych NVIDII pojawiła się 5 lat temu. Do tego Ray Tracing ma też inne wady, a jednym z największych problemów jest nieuwzględnianie światła rozproszonego oraz niemożliwość odpowiedniego modelowania dyfrakcji. Tutaj na scenę wchodzi Path Tracing, jako bardziej zaawansowana wersja śledzenia promieni (w dosłownym tłumaczeniu Path Tracing to śledzenie ścieżek). Oferuje ona znacznie lepsze efekty dla obrazów 3D, ale kosztem dużo wyższych wymagań sprzętowych nawet w porównaniu do zwykłego Ray Tracingu, który już sam w sobie jest bardzo wymagający.
Wiedźmin 3: Dziki Gon Next Gen - Test wydajności kart graficznych. Potworne wymagania sprzętowe z ray tracingiem
Path Tracing to technika opracowana w 1986 roku, wykorzystywana przy tworzeniu scen trójwymiarowych, opartych na losowej analizie ścieżek promieni światła (w tym celu wykorzystywana jest metoda Monte Carlo, stosowana do matematycznego modelowania procesorów zbyt złożonych, aby można było przewidzieć wyniki za pomocą podejścia analitycznego). Algorytm Path Tracingu jest zasadniczo zbliżony w działaniu do Ray Tracingu rekursywnego, aczkolwiek oferuje łatwiejsze modelowanie promieniujących powierzchni, niestety przy znacznie większym nakładzie obliczeń. W grach AAA Path Tracing jest nadal bardzo rzadko wykorzystywany. Możemy tutaj wymienić trzy gry, które korzystają z tego rozwiązania: Cyberpunk 2077, Alan Wake 2 oraz Black Myth: Wukong. Aktywacja Path Tracingu sprawia, że oprawa graficzna prezentuje się zauważalnie lepiej, wprowadzając większą naturalność w porównaniu do klasycznej rasteryzacji. Oprócz tego Path Tracing jest czasami wykorzystywany do upiększenia starych gier, np. za pomocą narzędzia NVIDIA RTX Remix. Wśród takich gier możemy wymienić m.in. Quake II RTX, Portal RTX, Serious Sam czy nadchodzący Half-Life 2 RTX.
Half-Life 2 RTX - NVIDIA podzieliła się nowym materiałem. Tak wygląda Path Tracing wprowadzony do klasycznej gry
Portal: Prelude RTX otrzymał Path Tracing, DLSS 3 oraz RTX IO. Remaster od dzisiaj dostępny za darmo dla posiadaczy Portala
Dobrze zaimplementowany Ray Tracing oraz Path Tracing oferuje znacznie lepszą jakość oświetlenia, cieniowania (wraz z okluzją otoczenia) czy odbić. Względem rasteryzacji, pełny Ray Tracing jest w stanie bardzo mocno zmienić wydźwięk wizualny danej sceny. Jest to jednak okupione ekstremalnie wysokimi wymaganiami sprzętowymi. W tym momencie dochodzimy do tego, co zostało zaprezentowane w tytule felietonu. Hardware staje się niewystarczający, a jego rozwój nie jest już tak szybki, jak w przypadku software. Ten drugi w ostatnich latach znacząco przyspieszył. Mowa w tym wypadku przede wszystkim o technikach skalowania, które zapoczątkowane zostały poprzez prezentację rozwiązania o nazwie NVIDIA DLSS wraz z kartami graficznymi NVIDIA GeForce RTX 20 (Turing). DLSS początkowo był wyłącznie metodą skalowania rozdzielczości z niższej do wyższej. Jednak tak, jak hardware musi być stale rozwijany, tak samo wygląda to w przypadku software. Pierwsza generacja DLSS, delikatnie mówiąc, nie należała do udanych i trudno było z powodzeniem rekomendować wybór. Podobnie zresztą było z pierwszą wersją AMD FSR - w tym wypadku jakość obrazu także mocno cierpiała.
Serious Sam - klasyczna strzelanka FPS z Poważnym Samem otrzymała gigantyczną modyfikację, dodającą pełny Ray Tracing
NVIDIA RTX - ray tracing nareszcie trafi do gier komputerowych
NVIDIA DLSS zaczął być bardzo mocno rozwijany w kolejnych latach - najpierw otrzymaliśmy DLSS 2, potem kolejne wersje DLSS 2.X, w których poprawiano jakość skalowania. Wraz z premierą kart graficznych GeForce RTX 4000 (Ada Lovelace) przyszła pora na kolejną wersję - DLSS 3. Oprócz skalowania rozdzielczości wykorzystano również generator klatek (Frame Generation), umożliwiający zwiększenie wydajności w grach np. z pełnym Path Tracingiem do poziomu, który normalnie nie byłby możliwy do uzyskania na obecnych generacjach kart graficznych (właśnie dlatego, że rozwój warstwy software jest obecnie dużo szybszy i łatwiejszy niż rozwój hardware, co jest odwrotnością tego, co widzieliśmy jeszcze kilkanaście lat temu). Po DLSS 3 przyszła pora na DLSS 3.5, która łączy w sobie zarówno skalowanie rozdzielczości, jak również tzw. rekonstrukcję promieni. Technika w tej wersji poprawia jakość odbijanych promieni, dając jeszcze lepsze efekty Path Tracingu, przy znaczącej redukcji szumów, które domyślnie pojawiają się po włączeniu Path Tracingu w wyniku niedostatecznie skutecznych denoiserów.
DLSS z Ray Reconstruction charakteryzuje się nie tylko lepszą jakością odbijanych źródeł światła, ale także znacznie poprawionym efektem odszumiania, redukując w ten sposób powstałe artefakty
Ray Tracing w Battlefield V - GeForce RTX serii 2000 ledwo zipią
Test wydajności Control PC - Wymagania sprzętowe poza kontrolą
AMD również zdecydowało się na rozwój warstwy software, czego dowodem są kolejne iteracje techniki skalowania AMD FSR (obecnie najnowsza wersja to FSR 3.1, również o znacznie lepszej jakości od pierwszych wersji). W porównaniu do NVIDII AMD stawia nie tyko na rozwój oprogramowania, ale również na otwartość, dzięki czemu z najnowszych wersji AMD FSR jako metody uspscalingu obrazu skorzystamy na znacznie szerszym przekroju kart graficznych. Ponadto AMD pracuje stale nad ulepszaniem swojej wersji generatora klatek w postaci Fluid Motion Frames (ten może działać zarówno w połączeniu ze skalowaniem AMD FSR, jak i jako osobny byt). Nawet Intel dostrzegł potrzebę rozwoju software'u i dlatego producent wprowadził swój własny wariant skalowania - XeSS - który ma dwie formy: jedną dla kart graficznych Intel ARC i wykorzystującą rdzenie XMX oraz drugą, w pełni otwartą, gdzie do działania wystarczy obsługa instrukcji DP4a. Wracając jeszcze do NVIDII na moment - ta oprócz aktywnego rozwijania DLSS, pracuje także nad ulepszeniem jakości grafiki czy wydajności w inny sposób. Rozwijany jest chociażby RTX Direct Illumination, czyli narzędzie służące do próbkowania dużej ilości dynamicznych źródeł światła. O autorskich denoiserach już wspominaliśmy (te wykorzystywane są po włączeniu DLSS Ray Reconstruction w grach, gdzie aktywny jest Path Tracing). Dalej mamy rozwój funkcjonalności kart graficznych GeForce RTX 4000, czyli Shader Execution Reordering - funkcja usprawniająca kolejkowanie shaderów, co wpływa na poprawę wydajności nawet o kilkanaście procent. To pokazuje, że obecnie również software jest bardzo istotny, a rozwój AI (w który NVIDIA jest bardzo zaangażowana, a coraz mocniej także AMD) tylko jeszcze bardziej przyspieszy ten proces. Możliwe, że hardware nie będzie już w stanie nigdy tak szybko się rozwijać jak software, zwłaszcza jeśli do gier będą stale implementowane coraz bardziej złożone formy Ray Tracingu oraz Path Tracingu.