Startseite / Unreal Engine bietet die Lösung für Shader-Stottern.

Unreal Engine bietet die Lösung für Shader-Stottern.

06.02.2025 00:04:17
Unreal Engine 5.2 integriert ein neues System zur Vorab-Ladung von Pipeline State Objekten (PSOs), um Shader-Kompilierungsstuttering in Spielen zu reduzieren. Dieses Problem tritt auf, wenn Spiele Shader erst während des Spielablaufs kompilieren müssen, was zu spürbaren Verzögerungen führt. Das neue System analysiert Materialien und Einstellungen vor dem Spielstart und bereitet die benötigten PSOs vor. Dadurch werden Wartezeiten reduziert und ein flüssigeres Spielerlebnis ermöglicht. Obwohl das System derzeit nur für bestimmte Shader-Typen funktioniert, ist es ein wichtiger Schritt in Richtung einer dauerhaften Lösung des Shader-Stuttering Problems.
Unreal Engine bietet die Lösung für Shader-Stottern.

Unreal Engine 5.2 führte ein neues System zur Vorab-Ladung von Pipeline State Objekten (PSOs) ein, um das Stottern aufgrund der Shaderkompilierung in Spielen zu reduzieren. Dadurch wird das Shader-Stottern behoben, welches derzeit ein großes Problem in PC-Spielen darstellt.

Shader-Kompilierungsstuttering (auch bekannt als Shader-Stuttering) tritt auf, wenn ein Spiel einen Shader gerade erst vorbereiten muss, bevor er angezeigt werden kann. Dies führt zu spürbaren Verzögerungen und dem auffälligen Auftauchen des Shaders. Diese Verzögerung entsteht, weil die Umwandlung von Hochsprachen-Shadercode in maschinenfähigen Code, den verschiedene Grafikkarten verstehen können, kompliziert ist.

Moderne Grafik-APIs wie DirectX 12 und Vulkan haben PSOs (Pipeline States Objects) eingeführt, um die Leistung zu verbessern. PSOs kombinieren Shader und Render-Einstellungen, sodass sie im Voraus vorbereitet werden können. Die sheer Anzahl der möglichen PSO-Kombinationen kann jedoch in komplexen Spielen mit vielen verschiedenen Materialien und Rendering-Optionen überwältigend sein. Frühere Methoden wie der "Bundled PSO Cache" von Unreal Engine konnten nicht mithalten. Dieser Cache erforderte viele Ressourcen zum Verfolgen und war schwer zu verwalten.

Das neue PSO-Vorablade-System von Unreal löst einige frühere Probleme. Während des Ladevorgangs werden Materialien, Meshes und die allgemeinen Einstellungen geprüft, um festzustellen, welche PSOs (Pipeline State Objects) wahrscheinlich benötigt werden. Diese werden während eines Ladebildschirms oder kurz bevor sie benötigt werden vorbereitet. Wenn Objekte später einlaufen, können sie entweder warten, bis die PSOs bereit sind, oder stattdessen ein grundlegendes Material verwenden. Dies hilft, wahrnehmbare Verzögerungen zu reduzieren.

Es ist großartig, dass die Entwickler daran arbeiten, dieses Problem zu beheben. Interessant ist, dass es nur ein Problem ist, weil sich die Technologie verbessert hat. In der Vergangenheit wurden Spiele mit vor kompiliertem Shader-Code geliefert, den der Grafiktreiber dann während des Spielablaufs umwandelte. Das funktionierte für einfachere Spiele gut, aber je komplexer die Shaders wurden und leistungsstärker die Grafikkarten, desto mehr Performanceprobleme traten auf.

Beachten Sie, dass der Umgang mit Materialänderungen ein laufendes Projekt ist und derzeit nur für einige Shader gilt. Beispielsweise werden globale Shader (verwendet für Effekte wie Bewegungsunschärfe) anders behandelt und zeigen weiterhin Probleme. Es gibt jedoch Pläne, dies in Zukunft zu verbessern.

Trotzdem scheint Unreal die Initiative zu ergreifen, dieses Problem für Spieler zu beheben. Hoffentlich wird eine permanente Lösung Shader-Stottern endgültig der Vergangenheit angehören lassen.

Das könnte Ihnen gefallen