Unreal Engine 5 behebt das größte Problem der PC-Grafik

respec dt vorgestelltes Bild 2
Diese Geschichte ist Teil der ReSpec-Reihe von Jacob Roach, die sich mit der Welt des PC-Gamings und der PC-Hardware befasst.

Während seiner State of Unreal-Adresse Auf der GDC 2023 kündigte Epic eine umfangreiche Suite an Funktionen für die Unreal Engine 5.2 an. Aber vielleicht das Meiste Die wichtige Funktion der aktualisierten Engine bezieht sich nicht auf Beleuchtung, Geometriedetails oder Strahlen Nachverfolgung. Es geht um Leistung.

Inhalt

  • Denken Sie an das Stottern
  • Alles für Fortnite
  • Es gibt immer noch viel Grund zur Vorfreude

Empfohlene Videos

Unwirkliche Engine Spiele wurden in den letzten Jahren zu Recht oder zu Unrecht mit Stottern und Störungen in Verbindung gebracht. Mit der neuen Version geht Epic das Problem endlich direkt an, daher dachte ich, es wäre höchste Zeit, herauszufinden, warum Unreal-Spiele so sind zeigen häufig Stottern an, was Epic unternimmt, um das Problem zu lösen, und wann wir damit rechnen können, dass diese Bemühungen in neuen Versionen zum Ausdruck kommen.

Denken Sie an das Stottern

Frametime in Gotham Knights auf dem PC.
Diese Frame-Time-Spitzen äußern sich in Gotham Knights als starkes Stottern.

In den letzten Jahren ist die Unreal Engine zum Synonym für Stottern geworden. Wir haben es immer und immer wieder gesehen Star Wars Jedi: Fallen Order Zu Streuner Zu Gotham Knights, und alle haben das gleiche Problem gemeinsam. Es ist ein Stottern der Kompilierung.

Normalerweise hört man von Stottern bei der Shader-Kompilierung, aber aktuelle Ursachen für Probleme sind nicht auf einzelne Shader zurückzuführen. In aktuellen Grafiken APIs wie Vulkan und DirectX 12 werden Pakete, die als Pipeline State Objects (PSOs) bekannt sind, genutzt, um dem Spiel den Zustand Ihrer GPU mitzuteilen. PSOs sollen das Rendering effizienter machen und ermöglichen die Schnittstelle Dutzender Parameter, einschließlich Shader, zwischen der API und der GPU in einem einzigen Paket.

Sie bringen jedoch ein anderes Problem mit sich. Da PSOs so viele Informationen enthalten, dauert die spontane Generierung eines neuen PSOs lange (laut zur Dokumentation von Unreal, 100 oder mehr Millisekunden). Diese PSO-Erstellung zur Laufzeit ist die Ursache für ein Stottern, bei dem die Engine während des tatsächlichen Spielens ein neues PSO generieren muss.

Um dem entgegenzuwirken, ist PSO-Caching in der Unreal Engine verfügbar. Dadurch wird ein Cache möglicher PSOs erstellt, sodass während des Spiels keine neuen generiert werden müssen, diese sind jedoch nicht perfekt. Wie Epic erklärt, kann das PSO-Precaching „bei großen Projekten mühsam sein und dennoch Lücken im Cache hinterlassen, die zu Problemen führen.“ Aus diesem Grund kommt es auch in Spielen, die Shader auf der GPU vorkompilieren, immer noch gelegentlich zu Rucklern (auch wenn diese selten sind). zwischen).

Epic versucht, diesen Prozess zu automatisieren, indem es PSOs sammelt, anstatt es den Entwicklern zu überlassen, jeden möglichen GPU-Parameter zu berücksichtigen. Ist Zustand Die öffentliche Roadmap von Epic, aber derzeit ist nur eine experimentelle Version verfügbar. In Unreal Engine 5.2 besteht das Ziel darin, das PSO-Caching zu verbessern, um Probleme weiter zu reduzieren.

Alles für Fortnite

Eine Szene, in der Fortnite in Unreal Engine 5 ausgeführt wird.

Es gibt eine Menge, worüber man sich bei Unreal Engine 5 freuen kann (auf einige davon gehe ich als Nächstes ein), aber wir haben noch keine klare Vorstellung davon, wie die Engine funktioniert. Bisher wurde es nur in Tech-Demos und verwendet Vierzehn Tage unter den Hauptveröffentlichungen. Sogar Spiele wie Rotfall die versprachen, die Unreal Engine 5 zu nutzen, sind auf Unreal Engine 4 umgestiegen.

Um es klar auszudrücken: Die in Unreal Engine 4 verfügbaren Tools ermöglichen es Entwicklern, ihre Spiele zu optimieren, um Stottern zu vermeiden. Atomherzist eines von vielen Beispielen dafür. Aber der komplexe Zustand der PSOs hat die Tür für Probleme während des Spiels offen gelassen, und Epics automatisierte PSO-Erfassung wurde erst in Unreal Engine 5.1 eingeführt.

Obwohl ich froh bin, dass Epic das Problem direkt angeht, haben wir den automatischen PSO-Cache noch nicht in Betrieb gesehen. Da immer komplexere und abwechslungsreichere Veröffentlichungen von kleineren Teams herauskommen, steigt die Nachfrage nach PSO-Generierung und die Möglichkeit von Störungen und Stottern wird immer präsenter.

Dies ist besonders besorgniserregend für Spiele, die Folgendes umfassen Raytracing, da Unreal Engine 5 kein PSO-Caching unterstützt Raytracing PSOs. Als Nvidia erklärtist es möglich, die Arbeit zur Erstellung eines Raytracing-PSO auf mehrere Threads zu verteilen, aber das bedeutet nicht unbedingt, dass Entwickler diesen Prozess verwenden werden.

Es gibt immer noch viel Grund zur Vorfreude

Beleuchtung in Unreal Engine 5.

In der Unreal Engine 5 müssen wir noch sehen, wie sich die PSO-Automatisierung aufbaut, aber in der Engine gibt es tatsächlich jede Menge Grund zur Freude. In erster Linie Lumen. Die Beleuchtung ist für die grafische Wiedergabetreue äußerst wichtig, und teure Techniken wie die pfadverfolgte Beleuchtung werden in vorgestellt Portal RTXsind hart für die Hardware. Lumen teilt den Unterschied.

Lumen nutzt Raytracing, es ist jedoch eine hochoptimierte Form davon Raytracing. Anstatt mühsam unendliche Sprünge auf detaillierten Objekten zu berechnen, verwendet Lumen Abstraktionen Um die Beleuchtung für den größten Teil der Szene zu berechnen, wird standardmäßig nur die detaillierte Beleuchtung verwendet, die der Szene am nächsten liegt Kamera. Durch diese Optimierung kann Lumen mit Software ausgeführt werden Raytracing, das Bedürfnis, engagiert zu sein, über Bord zu werfen Raytracing Beschleuniger auf Ihrem Grafikkarte.

Die Ergebnisse sind bereits eindeutig. Vierzehn Tage läuft auf Konsolen mit Lumen mit 60 Bildern pro Sekunde (fps) und sieht auf dem PC sogar in Innenräumen umwerfend aus Vierzehn Tage's Cartoon-Welt.

Ein Nanite-Showcase in Unreal Engine 5.

Nanite arbeitet mit Lumen zusammen. Es handelt sich um ein virtualisiertes Geometriesystem, das hochdetaillierte, stark komprimierte Netze enthält, die sich während des Spiels anpassen können. Es handelt sich im Grunde um einen komplexen Detaillierungsgrad (Level of Detail, LOD) für Netze, der automatisch zwischen detaillierten und vagen Netzen wechselt, je nachdem, wohin die Kamera blickt.

Noch wichtiger ist, dass Nanite in einem eigenen Rendering-Durchlauf ausgeführt wird, sodass es nicht in der herkömmlichen GPU-Pipeline hängen bleibt. Das bedeutet, dass Ihr Gameplay auch dann flüssig bleibt, wenn Nanite die Mesh-Komplexität austauscht. Zwischen Nanite und Lumen stehen Ihnen zwei visuell beeindruckende, recheneffiziente Funktionen zur Verfügung, die die Messlatte für grafische Wiedergabetreue höher legen.

Epic teilte jedoch während seiner State of Unreal-Rede mehr mit. Substrate ist ein neues Materialsystem in Unreal 5.2, das eine detailliertere Shader-Steuerung umfasst. Epic demonstrierte dies anhand eines opalen Oberflächenmaterials, das mehrere Schichten und eine präzise Lichtbrechung in allen Schichten zur Schau stellte.

Ein Opalmaterial in Unreal Engine 5.

Spannend ist auch das neue Procedural Content Generation Framework (PCG), auch wenn es nicht direkt mit der visuellen Wiedergabetreue zu tun hat. Mit begrenztem Input kann das PCG neue Objekte generieren, um Entwicklern den schnellen Aufbau von Welten mit hohem Detaillierungsgrad zu ermöglichen. Das ist spannend für weitläufigere Welten, die nicht an jeder Ecke die Berührung eines Künstlers benötigen.

Es gibt noch eine Menge mehr, von Weiterentwicklungen in MetaHuman bis hin zur vollständigen Pfadverfolgung innerhalb der Unreal Engine. Es ist aufregend, aber die Probleme mit dem Stottern, die häufig mit Unreal Engine-Releases einhergehen, bleiben bestehen. Hoffentlich können die Fortschritte von Epic beim PSO-Caching dieses Problem umgehen, aber wir haben noch nicht viele Unreal Engine 5-Spiele, um zu sehen, wie dieses System funktioniert.

Dieser Artikel ist Teil von ReSpec – eine fortlaufende zweiwöchentliche Kolumne mit Diskussionen, Ratschlägen und ausführlichen Berichten über die Technologie hinter PC-Spielen.

Empfehlungen der Redaktion

  • Ich habe versucht, das vergessene Erbe von Halo als Mac-Franchise noch einmal aufleben zu lassen – und es war eine Katastrophe
  • Bei exklusiven PC-Partnerschaften verlieren alle
  • Die schlechtesten PC-Ports aller Zeiten – und warum sie so schlecht waren
  • Wie generative KI Spiele mit „breiteren, größeren und tieferen Welten“ schaffen wird
  • Star Wars Jedi: Survivor wird auf Steam als „völlig beschissene“ PC-Portierung kritisiert