Rendering in Game Engines ist der Prozess, aus einer dreidimensionalen Szene ein zweidimensionales Bild zu berechnen, wobei Techniken wie Forward/Deferred Shading, Physically Based Rendering und Echtzeitschatten zum Einsatz kommen.
Rubrik: Game Design & Interactive Media · Unterrubrik: Game Engines · Niveau: Fortgeschritten
Synonyme / Auch bekannt als: Echtzeit-Rendering, Real-Time Rendering, Grafikpipeline, Render Pipeline
Was ist Rendering in Game Engines?
Rendering bezeichnet in der Spieleentwicklung den Gesamtprozess, bei dem ein Computer aus Szenen-Daten (3D-Geometrie, Materialien, Lichtquellen, Kameraperspektive) pro Frame ein Bild berechnet, das auf dem Bildschirm angezeigt wird. Bei 60 Frames pro Sekunde muss dieser komplexe Prozess in unter 16,7 Millisekunden abgeschlossen sein.
Modernes Echtzeit-Rendering hat in den letzten zwei Jahrzehnten eine dramatische Entwicklung durchgemacht: Techniken, die früher nur im Offline-Rendering (Film-VFX, Produktvisualisierung) möglich waren, sind heute in Videospielen Standard. Engines wie Unreal Engine 5 oder Unity HDRP bieten fotorealistische Ergebnisse, die von vorberechneten Szenen kaum zu unterscheiden sind.
Erklärung
Die Grafik-Pipeline
Jeder Render-Frame durchläuft eine Pipeline von Verarbeitungsschritten:
- Anwendungsphase: Spiellogik bestimmt, welche Objekte sichtbar sind (Frustum Culling, Occlusion Culling).
- Geometriephase: Vertices werden durch Vertex-Shader transformiert (Model → View → Clip-Space).
- Rasterisierung: Dreiecke werden in Fragmente (potenzielle Pixel) umgewandelt.
- Fragment-Shader: Jeder Fragment erhält eine Farbe basierend auf Material, Licht und Texturen.
- Output-Merger: Tiefentest, Blending – das finale Bild entsteht.
Forward Rendering
Beim Forward Rendering wird für jedes geometrische Fragment direkt die Beleuchtungsberechnung durchgeführt. Für jede Lichtquelle, die ein Objekt beeinflusst, muss ein Rendering-Durchlauf stattfinden.
Vorteile:
- Einfach zu implementieren
- Gut für transparente Objekte (Transparenz ist in Deferred Rendering problematisch)
- MSAA (Multi-Sample Anti-Aliasing) funktioniert gut
- Geringe Speicheranforderungen
Nachteile:
- Viele Lichter = viele Passes = Performance-Einbruch
- Überfüllte G-Buffer-Berechnungen bei vielen Objekten
Verwendung: Ältere Spiele, Mobile-Titel (wegen begrenztem VRAM), Unity Built-in und URP.
Deferred Rendering (Deferred Shading)
Deferred Rendering trennt Geometrie-Verarbeitung und Beleuchtung in zwei Phasen:
Phase 1 (G-Buffer-Pass): Geometrie der Szene wird gerendert, aber keine Beleuchtung berechnet. Stattdessen werden Daten wie Position, Normale, Albedo (Grundfarbe), Metallic, Roughness in Texturen (den G-Buffer) gespeichert.
Phase 2 (Lighting-Pass): Die Beleuchtung wird auf Basis des G-Buffers im Screen-Space berechnet. Jede Lichtquelle arbeitet nur auf den sichtbaren Pixeln – unabhängig von der Geometrie-Komplexität.
Vorteile:
- Sehr viele Lichtquellen möglich ohne O(n)-Kostensteigerung
- Ideal für Spiele mit dynamischer Beleuchtung (viele Lichtquellen im Raum)
Nachteile:
- Hoher VRAM-Bedarf (G-Buffer)
- Transparenz erfordert separate Forward-Passes
- MSAA nicht nativ unterstützt
Verwendung: UE5 (Forward+ als Option), Unity HDRP, CryEngine, die meisten AAA-Spiele.
Tiled/Clustered Deferred (Modern)
Moderne Engines nutzen Varianten wie Tiled Deferred oder Clustered Forward, die den Bildschirm in Kacheln aufteilen und pro Kachel nur die relevanten Lichtquellen berechnen. UE5 nutzt eine Form von Clustered Deferred, die mehrere hundert dynamische Lichtquellen effizient handhabt.
Physically Based Rendering (PBR)
PBR ist ein Beleuchtungsmodell, das auf physikalisch korrekten Materialeigenschaften basiert. Statt veralteter Phong-Modelle (Ambient, Diffuse, Specular als separate Werte) nutzt PBR:
- Albedo/Base Color: Die grundlegende Farbe des Materials ohne Lichtinformation.
- Metallic: 0 = nicht-metallisch (Plastik, Holz), 1 = Metall.
- Roughness: 0 = spiegelglatt, 1 = diffus matt.
- Normal Map: Simuliert Oberflächendetails ohne zusätzliche Geometrie.
- Ambient Occlusion (AO): Pre-baked oder Echtzeit-AO für Kontaktschatten in Ritzen.
PBR-Materialien verhalten sich unter allen Beleuchtungsbedingungen konsistent – ein Vorteil gegenüber alten Modellen, wo Beleuchtungsart das Material verfremden konnte.
Echtzeit-Schatten
Schatten-Berechnung ist einer der performance-intensivsten Aspekte des Renderings:
Shadow Mapping: Die klassische Technik. Aus der Perspektive der Lichtquelle wird eine Tiefentextur (Shadow Map) gerendert. Beim Haupt-Render-Pass prüft ein Shader, ob ein Punkt im Schatten liegt. Probleme: Aliasing-Artefakte (Pixelierte Schattenränder).
Cascaded Shadow Maps (CSM): Mehrere Shadow Maps in unterschiedlichen Auflösungen für verschiedene Distanzen zur Kamera lösen das Skalierungsproblem. Standard in modernen Engines.
PCF (Percentage Closer Filtering): Weiche Schattenränder durch Sampling mehrerer Shadow-Map-Texel.
PCSS (Percentage Closer Soft Shadows): Realistische, entfernungsabhängige Schatten-Weichheit.
Raytraced Shadows (DXR/Vulkan RT): Hardware-Raytracing für pixel-genaue, physikalisch korrekte Schatten ohne Shadow-Map-Artefakte. Ab Nvidia RTX und AMD RX 6000 verfügbar.
Globale Beleuchtung
Indirektes Licht (Licht, das von Oberflächen reflektiert wird) ist entscheidend für realistische Szenen:
- Lightmapping: Vorausberechnete Baked-GI für statische Geometrie. Sehr effizient, aber keine dynamischen Lichtänderungen.
- Lumen (UE5): Dynamische GI via Screen-Space und SDF-Raytracing.
- SDFGI (Godot 4): Signed Distance Field Global Illumination für dynamische Szenen.
- VXGI / VoxelGI: Voxel-basierte GI-Approximation.
Beispiele
- Crysis (2007): Zeigte erstmals umfassendes Dynamic Lighting mit Deferred Shading.
- The Last of Us Part II (2020): Benchmark für konsolen-basiertes PBR und weiche Schatten.
- Cyberpunk 2077 (2020): Eines der ersten AAA-Spiele mit vollständigem Raytraced Global Illumination.
In der Praxis
Für Entwickler bedeutet das Rendering-System die Wahl der richtigen Pipeline für das Projekt:
- Mobile: Forward Rendering (URP in Unity, Forward in Godot) für breite Hardware-Kompatibilität.
- Mid-Range PC: Deferred oder Forward+ für Balance aus Qualität und Performance.
- High-End PC/Konsole: Deferred + Raytracing für maximale Qualität.
Das Profiling der Render-Performance (z. B. mit RenderDoc, Unity Profiler, UE5 Insights) ist ein wesentlicher Teil der Entwicklung.
Vergleich & Abgrenzung
| Methode | Lichtquellen | Transparenz | VRAM | Plattform |
|---|---|---|---|---|
| Forward | Begrenzt | Gut | Niedrig | Mobile, Desktop |
| Deferred | Viele | Problematisch | Hoch | Desktop, Konsole |
| Tiled/Clustered | Sehr viele | Mittel | Mittel | AAA Desktop |
| Raytracing | Unbegrenzt | Gut | Sehr hoch | High-End PC |
Häufige Fragen (FAQ)
Was ist der Unterschied zwischen Rendering und Rasterisierung? Rasterisierung ist eine spezifische Rendering-Technik, die Dreiecke in Pixel umwandelt. Raytracing ist eine alternative Rendering-Methode. Rendering ist der übergeordnete Begriff für den gesamten Bildsynthese-Prozess.
Was bedeutet „Shader"? Shader sind kleine Programme, die auf der GPU ausgeführt werden und bestimmen, wie Vertices (Vertex Shader) und Pixel (Fragment/Pixel Shader) berechnet werden.
Warum ist Raytracing so performance-intensiv? Raytracing simuliert Lichtstrahlen physikalisch korrekt – für jeden Pixel werden mehrere Strahlen in die Szene geschickt, die rekursiv von Oberflächen reflektiert werden. Pro Frame können Millionen solcher Berechnungen nötig sein.
Verwandte Einträge
Weiterführend
- Akenine-Möller, Tomas / Haines, Eric / Hoffman, Naty: Real-Time Rendering. 4. Aufl. A K Peters/CRC Press, 2018.
- Lengyel, Eric: Foundations of Game Engine Development, Vol. 2: Rendering. Terathon Software, 2019.
- Pharr, Matt / Jakob, Wenzel / Humphreys, Greg: Physically Based Rendering: From Theory to Implementation. 4. Aufl. MIT Press, 2023.
