Ein Frame in 16 Millisekunden — wie eine Game-Engine ein Bild rechnet (3D)
Über diese App
Ein Innenhof wird Pass für Pass gerechnet wie in modernen Echtzeit-Engines: Geometrie, Tiefe, G-Buffer, Schattenkarte, Licht pro Pixel, Verdeckung, Reflexionen, Bloom, Tonemapping, Kantenglättung. Alle Zwischenbilder sind echt aus der Szene gerechnet; ein Zeitbudget zeigt, was 16,7 ms bei 60 fps bedeuten. Nachgebaut zur Veranschaulichung, keine Unreal-Engine-Software.
Deferred Rendering in 16,7 Millisekunden
Bei 60 Bildern pro Sekunde bleiben für jedes Bild 16,7 Millisekunden. Moderne Echtzeit-Engines teilen diese Zeit auf viele Durchgänge (Passes) auf. Beim Deferred Rendering schreibt die Grafikkarte zuerst Grundfarbe, Normalen, Material und Tiefe jedes Pixels in einen G-Buffer. Erst danach wird das Licht pro Pixel berechnet, sodass viele Lichtquellen bezahlbar bleiben. Es folgen Schatten, Umgebungsverdeckung (SSAO), Reflexionen, transparente Objekte, Bloom, Tonemapping von HDR auf den darstellbaren Bereich und Kantenglättung. Jeder Pass kostet Zeit; wer mehr Effekte oder eine höhere Auflösung will, muss anderswo sparen.
Was die App zeigt
Einen Innenhof mit Arkade, Pflanze, Goldkugel und Glasblock, Pass für Pass gerechnet in zwölf Stationen von der Geometrie bis zur Kantenglättung. Alle Zwischenbilder sind echt aus der Szene im Browser gerechnet: Tiefe, Albedo, Normalen, Material, Schattenkarte, Licht, SSAO, Reflexionen, HDR, Bloom und das fertige Bild, einzeln groß oder als Raster. Ein Budget-Panel zeigt Modell-Richtwerte in Millisekunden je Pass und die Marke bei 16,7 ms. Nachgebaut zur Veranschaulichung, keine Unreal-Engine-Software.
Selbst ausprobieren
Spiele den ganzen Frame ab oder springe mit dem Regler zu jedem Pass. Erhöhe die Zahl der Punktlichter auf 64 und vergleiche Deferred mit Forward Rendering. Stelle die Zielauflösung auf 4K: Der Balken läuft über das Budget. Schalte dann SSAO, Reflexionen, Bloom, Schatten oder Kantenglättung ab und sieh, was du an Zeit gewinnst und im Bild verlierst.
Häufige Fragen
- Was ist ein G-Buffer?
- Ein G-Buffer (Geometry Buffer) besteht aus mehreren Bildern gleicher Größe, die für jedes Pixel Eigenschaften der sichtbaren Oberfläche speichern: Grundfarbe (Albedo), Normale, Materialwerte wie Rauheit und Metall sowie die Tiefe. Beim Deferred Rendering berechnet ein späterer Pass daraus das Licht pro Pixel.
- Was ist der Unterschied zwischen Deferred und Forward Rendering?
- Beim Forward Rendering wird jedes Objekt beim Zeichnen sofort mit allen Lichtern beleuchtet; die Kosten wachsen mit Objekten mal Lichtern. Beim Deferred Rendering werden zuerst die Oberflächendaten gespeichert und das Licht danach einmal pro Pixel berechnet. Viele Lichter werden so günstiger, transparente Objekte brauchen aber einen eigenen Pass.
- Was macht Tonemapping?
- Die Szene wird intern mit hohem Dynamikumfang (HDR) gerechnet, helle Stellen können also viel heller als Weiß sein. Tonemapping bildet diese Werte auf den Bereich ab, den ein Bildschirm darstellen kann, ohne dass helle Bereiche einfach ausbrennen.
- Sind die Millisekunden in der App gemessen?
- Nein, sie sind Modell-Richtwerte für eine Grafikkarte der Mittelklasse. Die Zwischenbilder dagegen sind echt aus der Szene gerechnet. Erlaubt der Browser eine GPU-Zeitmessung, zeigt die App zusätzlich die gemessene Zeit dieser kleinen Szene.
Fach: Informatik
Mehr aus Informatik
- Ackermann-Funktion
- Aufzug-Simulator
- Binär-Werkstatt
- Binäre vs. lineare Suche
- Collatz-Problem (3n+1)
- CPU-Innenleben
- Das Innere austauschen
- Funktions-Räume (3D)
Eine VisuApp von heyprof: interaktiv, kostenlos im Browser, ohne Anmeldung. Was ist eine VisuApp? · Alle Apps