Zum Hauptinhalt Zur Navigation Zur Suche

The Dark Ages: Diese Tricks sparen mehrere Millisekunden pro Frame bei Doom

GDC 2026
Neue Rendering-Methoden, Compute-Shader und ungewöhnliche Optimierungen haben trotz deutlich größerer Levels stabile 60 fps ermöglicht.
/ Peter Steinlechner
Kommentare undefined News folgen (öffnet im neuen Fenster)
Artwork von Doom - The Dark Ages (Bild: id Software)
Artwork von Doom - The Dark Ages Bild: id Software
Inhalt
  1. The Dark Ages: Diese Tricks sparen mehrere Millisekunden pro Frame bei Doom
  2. id Tech 9 soll wieder einfacher werden

Auf der GDC 2026 hat id Software einen seltenen Einblick in die Technik hinter Doom – The Dark Ages ( Spieletest auf Golem ) gegeben. In seinem Vortrag zeigte Principal Engineer Philip Hammer, wie die aktuelle Version der id-Tech-Engine funktioniert, und warum sie für das Spiel grundlegend umgebaut werden musste.

Der Grund: größere Levels, deutlich mehr Geometrie und der Anspruch, auf allen Plattformen stabile 60 Bilder pro Sekunde zu liefern. " Ordentliche Frameraten sind für uns ein unverzichtbares Qualitätsmerkmal ", erklärte Hammer.

Die Engine nutzt zahlreiche moderne GPU-Techniken gleichzeitig. Raytracing spielt für globale Beleuchtung eine zentrale Rolle, außerdem laufen viele Teile der Rendering-Pipeline als Compute-Shader parallel zueinander.

Ziel ist es, die GPU möglichst effizient auszulasten und Wartezeiten zwischen einzelnen Arbeitsschritten zu vermeiden. Viele Aufgaben (etwa Partikelsimulation, BVH-Updates oder Postprocessing) laufen parallel auf separaten Compute-Queues.

Warum die alte Rendering-Pipeline nicht mehr reichte

Frühere Doom-Spiele verwendeten eine sogenannte Forward-Plus-Pipeline, bei der Geometrie zweimal gerendert wird: zunächst ein Depth-Prepass, danach der eigentliche Renderdurchlauf. Dieses Verfahren funktionierte gut für enge Level mit relativ überschaubarer Geometrie.

In The Dark Ages änderte sich das jedoch. Die Spielwelt wurde größer und komplexer, gleichzeitig stieg die Zahl kleiner Dreiecke massiv an. Dadurch entstanden ineffiziente GPU-Berechnungen: Viele Pixel-Shader-Threads liefen zwar vollständig durch, lieferten aber kein sichtbares Ergebnis.

Solche sogenannten Helper Lanes sind nötig, um Ableitungen etwa für Mipmapping zu berechnen, verursachen aber zusätzliche Kosten. Laut Hammer entwickelte sich das Problem zu einem " versteckten Flaschenhals, ein Tod durch tausend Nadelstiche ".

Die Lösung war ein Umbau der Pipeline. id Software(öffnet im neuen Fenster) führte ein hybrides System aus Visibility-Buffer und Deferred Rendering ein. Dabei wird Geometrie nur noch einmal rasterisiert.

Rendering komplett in Compute-Shadern

Statt fertiger Pixel schreibt die Engine zunächst Sichtbarkeitsinformationen in einen Buffer, etwa Dreiecks-ID oder Instanz-Index. Aus diesen Daten rekonstruiert ein späterer Compute-Pass die tatsächlichen Vertex-Attribute pro Pixel.

Der Vorteil: Viele teure Shader werden erst ausgeführt, wenn klar ist, dass ein Pixel wirklich sichtbar ist. Das reduziert überflüssige Arbeit.

Ein zentrales Element der Pipeline ist das sogenannte Deferred Texturing. Dabei wird das klassische G-Buffer-Rendering vollständig von Compute-Shadern übernommen.

Die Engine analysiert zunächst den Visibility-Buffer und erstellt Listen mit Pixeln, die dasselbe Material verwenden. Diese Listen werden anschließend als indirekte Compute-Dispatches ausgeführt. Auf diese Weise laufen Shader nur dort, wo sie tatsächlich benötigt werden – nicht mehr pauschal über den gesamten Bildschirm.

Um weitere Effizienz zu gewinnen, teilt die Engine das Bild zusätzlich in 32-mal-32-Pixel-Kacheln auf. Für jede Kachel merkt sich das System, welche Material- oder Shader-Features dort überhaupt vorkommen.


Relevante Themen