Unreal Engine 5 rozwiązuje największy problem w grafice komputerowej

respec dt wyróżniony obraz 2
Ta historia jest częścią serii ReSpec Jacoba Roacha, obejmującej świat gier komputerowych i sprzętu.

Podczas jego Stan adresu Unreal na GDC 2023 firma Epic ogłosiła szeroki zestaw funkcji dla Unreal Engine 5.2. Ale chyba najbardziej ważna funkcja, która pojawi się w zaktualizowanym silniku, nie dotyczy oświetlenia, szczegółów geometrii ani promienia rysunek kalkowy. Wszystko zależy od wydajności.

Zawartość

  • Pamiętaj o jąkaniu
  • Wszystko dla Fortnite
  • Wciąż jest się czym ekscytować

Polecane filmy

Nierealny silnik gry, słusznie lub nie, były kojarzone z jąkaniem i zacinaniem się w ciągu ostatnich kilku lat. Wraz z nową wersją Epic w końcu stawił czoła temu problemowi, więc pomyślałem, że nadszedł czas, aby wyjaśnić, dlaczego gry Unreal są tak często pokazują jąkanie, co Epic robi, aby rozwiązać problem, i kiedy możemy spodziewać się, że te wysiłki pojawią się w nowych wersjach.

Pamiętaj o jąkaniu

Czas klatki w Gotham Knights na PC.
Te skoki czasu klatek objawiają się poważnymi jąkaniami w Gotham Knights.

W ciągu ostatnich kilku lat Unreal Engine stał się synonimem jąkania. Widzieliśmy to w kółko, od 

Gwiezdne Wojny Jedi: Upadły Zakon Do Zabłąkany Do Rycerze Gotham, i wszystkie mają ten sam problem. To jąkanie się kompilacji.

Zwykle słyszysz o zacinaniu się kompilacji shaderów, ale ostatnie źródła problemów nie wynikają z poszczególnych shaderów. W najnowszej grafice API, takie jak Vulkan i DirectX 12, pakiety znane jako Pipeline State Objects (PSO) są wykorzystywane do informowania gry o stanie twojego GPU. PSO mają na celu zwiększenie wydajności renderowania, umożliwiając połączenie dziesiątek parametrów, w tym shaderów, między interfejsem API a GPU w jednym pakiecie.

Wprowadzają jednak inny problem. Ponieważ PSO zawierają tak wiele informacji, generowanie nowego w locie zajmuje dużo czasu (zgodnie z art do dokumentacji Unreal, 100 lub więcej milisekund). To tworzenie PSO w czasie wykonywania jest źródłem zacinania się, w którym silnik musi generować nowe PSO podczas gry.

Aby temu zaradzić, w Unreal Engine dostępne jest buforowanie PSO. Tworzy to pamięć podręczną możliwych PSO, więc nie trzeba generować nowych podczas gry, ale nie są one idealne. Jak wyjaśnia Epic, wstępne buforowanie PSO może „być uciążliwe w przypadku dużych projektów i nadal pozostawiać luki w pamięci podręcznej prowadzące do zacięć”. Dlatego nawet w grach, które prekompilują shadery na GPU, nadal od czasu do czasu zobaczysz zacinanie się (nawet jeśli jest ich niewiele i daleko między).

Epic próbuje zautomatyzować ten proces, zbierając PSO, zamiast pozostawiać programistom uwzględnienie każdego możliwego parametru GPU. Jest włączony Publiczna mapa drogowa firmy Epic, ale obecnie dostępna jest tylko wersja eksperymentalna. W Unreal Engine 5.2 celem jest ulepszenie buforowania PSO w celu dalszego ograniczenia przestojów.

Wszystko dla Fortnite

Scena z Fortnite działającego na Unreal Engine 5.

W Unreal Engine 5 jest wiele powodów do ekscytacji (przejdę do tego później), ale nie mamy jeszcze jasnego obrazu działania silnika. Do tej pory był używany tylko w demach technologicznych i Fortnite wśród głównych wydań. Nawet gry np Redfall które obiecały wykorzystać Unreal Engine 5, wycofały się do Unreal Engine 4.

Dla jasności, narzędzia dostępne w Unreal Engine 4 pozwalają programistom optymalizować swoje gry, aby uniknąć zacinania się. Atomowe Sercejest jednym z wielu tego przykładów. Ale złożony stan PSO pozostawił otwarte drzwi do problemów podczas gry, a automatyczne gromadzenie PSO firmy Epic zostało wprowadzone dopiero w Unreal Engine 5.1.

Chociaż cieszę się, że firma Epic bezpośrednio zajmuje się tym problemem, nie widzieliśmy jeszcze procesu automatycznego buforowania PSO. Ponieważ mniejsze zespoły wychodzą z bardziej skomplikowanych, zróżnicowanych wersji, rośnie zapotrzebowanie na generowanie PSO, a możliwość zacinania się i zacinania staje się coraz bardziej obecna.

Dotyczy to szczególnie gier, które zawierają śledzenie promieni, ponieważ Unreal Engine 5 nie obsługuje buforowania PSO dla śledzenie promieni obowiązki świadczenia usług publicznych. Jak Nvidia wyjaśnia, możliwe jest rozłożenie pracy związanej z tworzeniem PSO ray tracingu na wiele wątków, ale to niekoniecznie oznacza, że ​​programiści będą korzystać z tego procesu.

Wciąż jest się czym ekscytować

Oświetlenie w Unreal Engine 5.

Nadal musimy zobaczyć zautomatyzowane gromadzenie PSO w Unreal Engine 5, ale tak naprawdę jest mnóstwo rzeczy, którymi można się ekscytować w silniku. Przede wszystkim Lumen. Oświetlenie jest niezwykle ważne dla wierności graficznej, a drogie techniki, takie jak oświetlenie ze śledzeniem ścieżki, zostały zaprezentowane Portal RTXsą trudne dla sprzętu. Lumen dzieli różnicę.

Lumen wykorzystuje ray tracing, ale jest to wysoce zoptymalizowana forma śledzenie promieni. Zamiast żmudnego obliczania nieskończonych odbić na szczegółowych obiektach, Lumen używa abstrakcji aby obliczyć oświetlenie dla większości sceny, domyślnie ustawiając tylko szczegółowe oświetlenie najbliższe kamera. Ta optymalizacja pozwala Lumenowi działać z oprogramowaniem śledzenie promieni, porzucając potrzebę poświęcenia śledzenie promieni akceleratory na twoim karta graficzna.

Wyniki są już jasne. Fortnite działa na konsolach z Lumenem w 60 klatkach na sekundę (fps) i wygląda olśniewająco na PC, nawet w Fortnite'kreskówkowy świat.

Prezentacja nanitów w Unreal Engine 5.

Nanit współpracuje z Lumenem. Jest to zwirtualizowany system geometrii, który zawiera bardzo szczegółowe, mocno skompresowane siatki, które można dostosowywać podczas gry. Zasadniczo jest to złożony poziom szczegółowości (LOD) dla siatek, który automatycznie przełącza się między szczegółowymi i niejasnymi siatkami w zależności od tego, gdzie patrzy kamera.

Co ważniejsze, Nanite działa na własnym przebiegu renderowania, więc nie jest uwięziony w tradycyjnym potoku GPU. Oznacza to, że twoja gra pozostaje płynna, nawet gdy Nanite zamienia złożoność siatki. Pomiędzy Nanite i Lumen masz dwie imponujące wizualnie, wydajne obliczeniowo funkcje, które podnoszą poprzeczkę w zakresie wierności graficznej.

Epic udostępnił jednak więcej podczas swojego przemówienia State of Unreal. Substrate to nowy system materiałów w Unreal 5.2, który obejmuje bardziej szczegółową kontrolę cieniowania. Firma Epic zademonstrowała to, stosując opalizujący materiał powierzchniowy, prezentując wiele warstw i dokładne załamanie światła w nich.

Opalowy materiał w Unreal Engine 5.

Nowy Procedural Content Generation Framework (PCG) jest również ekscytujący, nawet jeśli nie odnosi się bezpośrednio do wierności wizualnej. Przy ograniczonym wkładzie PCG może generować nowe obiekty, aby umożliwić programistom szybkie tworzenie światów o wysokim poziomie szczegółowości. To ekscytujące dla bardziej ekspansywnych światów, które nie potrzebują dotyku artysty na każdym rogu.

Jest o wiele więcej, od postępów w MetaHuman po pełne śledzenie ścieżki w Unreal Engine. To ekscytujące, ale problemy z jąkaniem, często związane z wydaniami Unreal Engine, pozostają. Miejmy nadzieję, że postęp firmy Epic w buforowaniu PSO może ominąć ten problem, ale nie mamy jeszcze wielu gier Unreal Engine 5, aby zobaczyć, jak działa ten system.

Ten artykuł jest częścią ReSpec – trwająca co dwa tygodnie kolumna zawierająca dyskusje, porady i szczegółowe raporty na temat technologii stojących za grami komputerowymi.

Zalecenia redaktorów

  • Próbowałem ponownie przeżyć zapomniane dziedzictwo Halo jako franczyzy na komputery Mac — i to była katastrofa
  • Dzięki wyłącznym partnerstwom na PC wszyscy tracą
  • Najgorsze porty PC wszechczasów — i dlaczego były takie złe
  • Jak generatywna sztuczna inteligencja stworzy gry z „szerszymi, większymi i głębszymi światami”
  • Star Wars Jedi: Survivor jest bombardowany recenzjami na Steamie jako „totalne gówno” na PC