fbscript
alan wake 2 Mesh Shaders

Czy Mesh Shaders to przyszłość gier?

2023-12-07 | Blog | 0 komentarzy

O mesh shaders zrobiło się głośno po premierze gry Alan Wake 2. Tytuł uruchomi się, jeśli nasz sprzęt ich nie obsługuje, ale niezależnie od ustawień grafiki wydajność pozostawia wiele do życzenia. Co to oznacza dla graczy posiadający starszy sprzęt?

◾ Szukasz komputera gamingowego? Sprawdź ➡ KOMPUTERY OPTIMUS

Cała idea mesh shaders polega na tym, że pozwalają twórcom gier przetwarzać wielokąty z dużo większą efektywnością i kontrolą niż kiedykolwiek wcześniej robiono to za pomocą vertex shaders (tzw. shadery wierzchołków). Nowy standard wchodzi w skład bibliotek DirectX 12 Ultimate a kontynuacja Alan Wake to pierwsza produkcja zoptymalizowana wyłącznie wokół tego rozwiązania. Ciekawe, bo tak naprawdę mesh shaders są niejako dostępne już od pięciu lat. Czy faktycznie mają tak istotny wpływ na grafikę i liczbę klatek oraz czemu zajęło tyle czasu, zanim rzeczywiście zastosowano je w grze?

Co to są mesh shadery?

Od razu przejdźmy do konkretów. W praktyce Mesh Shaders to zlepek dwóch terminów. Mesh (siatka) to sposób reprezentacji i renderowania obiektów trójwymiarowych i sprowadza się do zbioru wierzchołków oraz krawędzi tworzących kształt obiektu. W jego obrębie występują także mniejsze części, zwane meshletami, które mogą być łatwiej przetwarzane. Natomiast shader to program (instrukcja) opisujący właściwości pikseli oraz wierzchołków w grafice 3D. W skrócie całość pozwala na bardziej złożone modelowanie w świecie gry niż standardowe modele oświetlenia i teksturowania.

Test Mesh Shaders wprowadzony przez UL Solutions.

Mesh Shaders zastępują dotychczas użytkowane vertex shaders (shadery wierzchołków), oferując twórcom odpowiadającym za wizualny i techniczny aspekt gry większą swobodę w modelowaniu cyfrowego świata. Mesh Shaders w czasie rzeczywistym pozwalają manipulować geometrią obiektów a nawet łatwo odrzucać tę część modelu, która nie jest widoczna lub istotna, co przekłada się na oszczędność mocy obliczeniowej. Tym sposobem optymalizacja gry powinna być prostsza a twórcy nie muszą decydować się na daleko idące kompromisy w kwestii wizualnych lub liczby generowanych klatek.

Zobacz też: Co to jest DLSS i co daje w grach?

Pojedynek starego z nowym. Vertex vs. Mesh Shaders

Powstawanie grafiki komputerowej to skomplikowany proces, dlatego zostańmy przy podstawach. Od lat wyróżniamy różne wersje shaderów, jak choćby hull, domain, geometry, compute oraz pixel shaders, choć w praktyce największe znaczenie mają vertex shaders. Dzięki nim powstają złożone modele w świecie gry, niemniej deweloperzy podchodzą do nich bardzo oszczędnie, ułatwiając tak proces twórczy. Niestety pogoń za lepszą i bardziej realistyczną grafiką oznacza tylko więcej informacji do przetworzenia.

Tradycyjny sposób przetwarzania strumienia (pipeline) grafiki a rozwiązanie oparte na mesh shader.

Ogółem nie chodzi wyłącznie o liczbę obiektów do przetworzenia, ale także łatwość zarządzania nimi. Etap przetwarzania wierzchołków na poziomie Direct3D spotyka się z pewnym wyzwaniem, ponieważ program ma swoje ograniczenia w tym, co deweloper może a czego nie może zrobić. Szczególnie jest to odczuwalne w kwestii obiektów, które z perspektywy gracza nie są widoczne. W tym przypadku stosuje się tzw. culling (odstrzał), pozbywając się tak nadmiaru obiektów, ale trzeba to zrobić przed wysłaniem jakichkolwiek poleceń do GPU, albo odrzucanie następuje już po przetwarzaniu wierzchołków. Jak pewnie się domyślacie nie jest zbyt efektywne. To, dlatego twórcy podchodzą do vertex shaders oszczędnie. Chcąc zrobić coś bardziej skomplikowanego starą metodą mają po prostu masę roboty.

Zobacz też: Top 10 ścieżek dźwiękowych z gier – lista nieoczywista

Powyżej opisane zadania wykonywane są na poziomie API, co oznacza interfejs programowania aplikacji (ang. application programming interface). Chcąc wyjść naprzeciw oczekiwaniom twórców gier Microsoft wprowadził mesh shaders w formie beta w 2019 roku, zanim uczynił je częścią publicznej wersji modułu Direct3D w 2020 roku, który jest elementem składowym narzędzia DirectX. Tym sposobem mesh shaders debiutowały w DirectX 12 Ultimate. Co ciekawe, Nvidia pokazała ich zastosowanie nieco wcześniej, prezentując możliwości wtenczas nowej architektury GPU o nazwie Turing za pośrednictwem dema z asteroidami.

Debiut z pięcioletnim poślizgiem

Skoro mesh shaders są tak niesamowite, dlaczego deweloperom zajęło tyle czasu, aby pokazać je w praktycznym zastosowaniu? Wszak pierwsze testy i pokazy udowadniały znaczny wzrost wydajności. Zatem można było przypuszczać, że branża szybko wykona przestawienie z vertex shaders na mesh shaders. Mimo to nic istotnego nie zadziało się w tej sprawie. Dopiero w roku 2021 UL Solutions ogłosiło wprowadzenie testu funkcji mesh shader dla benchmarka 3DMark. Później tu i tam pojawiały się różne pomniejsze dema, ale nic konkretnego aż do premiery Alan Wake 2.

W praktyce chcąc użytkować mesh shaders potrzebujemy trzech zgodnych elementów: kompatybilnego sprzętu, zaktualizowany o nową funkcję API oraz silnik graficzny potrafiący spożytkować nowość. Jeśli idzie o narzędzia dla twórców dopiero Unreal Engine 5 użytkuje mesh shaders w postaci części składowej funkcji Nanite. Mniej zaawansowane implementacje tej techniki znalazły się ostatnio w Unity w potoku High Definition Render Pipeline (HDRP). Niektóre studia stawiają na narzędzia własnego autorstwa i tu póki, co prym wiedzie Remedy swoim silnikiem Northlight.

Kontrowersje zaczynają się na gruncie sprzętowym, mianowicie potrzebujemy kartę graficzną bazującą na architekturze od AMD RDNA 2 (seria 6000 i nowsze) albo od Nvidia Turing (seria 2000 i nowsze). Układy Intel ARK także zaliczamy do tego grona. W praktyce mesh shaders są też kompatybilne z kartami Geforce GTX 1660 i 1650, które przecież też bazują na architekturze Turing, choć nie posiadają rdzeni RT oraz Tensor. Wszystko, co wyszło na rynek wcześniej, łącznie z mocarnym GTX 1080 Ti czy RX 5700 XT, staje się dosłownie bezużyteczne.

Czy tak wygląda przyszłość grafiki w grach z pomocą mesh shaders? Czas pokaże.

Deweloperzy tworząc grę muszą myśleć strategicznie w kwestii popytu. Dlatego mierzą w sprzęt szeroko dostępny, jeśli dany tytuł ma się w ogóle sprzedać. Kart obsługujących bazowy DirectX 12 bez mesh shaders jest całe mrowie i nim zostaną całkowicie wyparte minie trochę czasu. Po drugie, tworząc duży tytuł proces ten trwa dwa, trzy i nierzadko więcej lat. Trudno zatem, aby gra, nad którą rozpoczęto prace w 2018 czy 2020 roku, nagle była w pełni zoptymalizowana pod nowinkę zarezerwowaną dla wąskiego grona sprzętu.

Zobacz też: Przedstawiamy Corsair Dominator – pamięci DDR5 dla entuzjastów

W tej układance istotne są także konsole, pod które najpierw pisane są gry a potem przenoszone na PC. Długie wsparcie ósmej generacji z pewnością wydłużyło czas wdrażania mesh shaders. Dopiero Xbox Series X/S w pełni wspiera to rozwiązanie, ponieważ wykorzystuje DirectX 12 Ultimate. PlayStation 5 bazuje na tej samej architekturze GPU autorstwa AMD, ale Sony używa swojego własnego API graficznego. Jak pewnie się domyślacie, tworzenie na różne platformy, nawet jeśli są do siebie podobne, nie polega na zwykłym kopiuj-wklej kodu.

Mesh shader, czyli następny krok w generowaniu grafiki komputerowej

Wdrażanie nowinek w świecie gier trwa przeważnie dość długo. Weźmy na ten przykład DirectStorage, dodany do DirectX 12 Ulimate przez Microsoft, który pozwala GPU korzystać ze zasobów bezpośrednio z dysku oraz zarządzać dekompresją plików omijając tak wąskie gardło po stronie procesora i RAM. Obecnie tylko jedna gra na PC korzysta z niego, a jest to słaby Forspoken. Ponownie potrzebujemy gier napisanych od zera z myślą o DirectStorage, jak ma to miejsce na konsolach obecnej generacji. Koniecznym jest też spełnienie przez gracza wymogu standardu dysku a także wspieranego systemu operacyjnego.

Mimo, że ray tracing był dostępny w dniu premiery wraz z kartami serii RTX, tytułów go obsługujących mogliśmy policzyć na palcach dłoni. Do tego można debatować nad tym, jak bardzo różniły się one od renderowania grafiki z pomocą rasteryzacji. Często różnice były, co najwyżej kosmetyczne. Sami twórcy gier uczulają, że nim zobaczymy gry w pełni napisane z myślą o śledzeniu promieni będzie to (może) dopiero następna generacja konsol i minimum za dwie generacje kart graficznych. Zatem mówimy o perspektywie, co najmniej pięciu lat.

Chcąc naprawdę w pełni wykorzystać mesh shaders, programiści muszą stworzyć cały zestaw modeli i światów zoptymalizowanych pod to rozwiązanie, wcześniej upewniając się, że istnieje wystarczająco dużo kompatybilnego sprzętu wśród użytkowników, aby uzasadnić poświęcony czas oraz mieć pewność, że sprzedaż gry będzie wystarczająco dobra. Czy zobaczymy takie przejście w 2024 roku? Raczej nie, ale przyszłość czai się tuż za rogiem i warto o tym pamiętać.

Zobacz też:

—————————————–

Dołącz do rodziny Optimus – polub i poleć nas znajomym!

Odwiedzaj naszą stronę na FacebookuTikToku oraz YouTube i poleć nas znajomym! Sprawdź nasze aktualne promocje i konkursy!