Fast jeder Spieler hat wahrscheinlich schon einmal diesen enttäuschenden Moment erlebt: Ihr betretet ein Badezimmer und dreht euch gespannt zum Waschbecken, nur um sofort mit der nüchternen Realität konfrontiert zu werden. Statt eines typischen Spiegels erwartet euch manchmal gebrochenes Glas, manchmal nur eine schmutzige Oberfläche, die diffus irgendwelche Formen reflektiert.
Oder ihr erfahrt auf diese schockierende Art, dass euer Charakter in Wahrheit ein Vampir ist. Denn oft taucht zwar der Raum gespiegelt auf, aber nicht der Held oder die Heldin. Ein Meme auf Reddit fasst diese (und noch weitere Szenarien) amüsant zusammen:
Link zum Reddit-Inhalt
Trotz des klaren Augenzwinkerns zeigt sich hier klar, dass Entwickler bei Spiegeln sehr gerne tricksen. Sei es nun, um sie zu vermeiden oder um die Illusion eines Spiegels zu erzeugen. Es gibt aber auch Methoden, wie sich realistische Spiegel in Games erzeugen lassen. Diese haben oft allerdings einen hohen Preis.
Ganz ähnlich übrigens, wie überraschenderweise auch Treppen oder Türen - auch diese können bei Spielen für ordentlich Ärger sorgen:
Warum funktionieren Spiegel in Videospielen nicht einfach wie in echt?
Inzwischen bringen viele Spiele ja einen gewissen Realismus-Anspruch bei ihren Assets mit. Man kann sich also durchaus die Frage stellen, warum man virtuell nicht einfach einen echten Spiegel nach physikalischen Regeln nachbaut. Spiegel funktionieren in der Realität so, dass sie einfallendes Licht reflektieren.
Die Lichtwellen treffen auf eine extrem glatte, metallische Oberfläche (meist aus Aluminium) auf der Rückseite des Spiegels, die durch eine Glasschicht vorne geschützt wird. Diese wirft anschließend ein Bild zurück, weil das Reflexionsgesetz aus der Physik besagt, dass das eingehende Lichts stets im gleichen Winkel reflektiert wird. Der Einfallswinkel entspricht also dem Ausfallswinkel. Unser Auge nimmt das dann so wahr, als käme das Bild aus dem Spiegel selbst – irgendwie werden wir also auch im echten Leben getäuscht.
Die Lichtwellen, die uns so selbstverständlich umgeben und von Spiegeln genutzt werden, existieren so aber nicht im digitalen Raum (zumindest nicht, wenn sie nicht aufwändig simuliert werden – aber dazu später mehr). Deshalb müssen Entwickler Spiegel so faken, dass die Illusion einer natürlichen Reflektion entsteht.
15:22
»Mein erster Blick fällt auf den Spiegel« - Die wichtigsten kleinen Details, Folge 1
Kopieren geht über Studieren
Hierfür existieren verschiedene Methoden, die mal besser, mal schlechter funktionieren und allesamt Vor- und Nachteile mitbringen. Einen guten Überblick liefert dieser Artikel von der Gamedev-Seite 80.lv. Einige Möglichkeiten stellt zudem YouTuber und Hobby-Entwickler Code It All anschaulich in seinem Video vor. Er probiert verschiedene Ansätze in der Godot-Engine aus und lässt uns daran teilhaben:
Der wohl einfachste Weg besteht darin, schlichtweg den Raum zu kopieren, den man spiegeln möchte. Das Level existiert also gewissermaßen zweimal, was die Illusion einer perfekten Reflektion erzeugt. Das funktioniert sogar mit eurer Spielfigur, die dann sämtliche Aktionen tatsächlich gespiegelt ausführt, wenn ihr sie entsprechend verknüpft.
Link zum YouTube-Inhalt
Eine schnelle und unkomplizierte Methode, die allerdings nur bei geringer Auflösung und wenigen Details wirklich Sinn ergibt – zum Beispiel bei Super Mario 64. Bei modernen Spielen würde dieser Trick wahrscheinlich schnell euren PC in die Knie zwingen. Selbst mit seinem schlichten Test-Szenario büßt Code It All bereits ordentlich FPS ein.
Eine zweite Kamera als Spiegel
Es muss also noch weitere Wege geben – gerade solche, die auch in Umgebungen funktionieren, die nicht statisch sind. Führt man sich vor Augen, dass der eigene Blickwinkel in Spielen im Prinzip auf einer Kamera basiert, liegt auch nahe, dass man diese als Spiegel nutzen kann. Oder eher als weiteren Blickwinkel, der von uns als Spiegel wahrgenommen wird, weil er die Szene zu uns zurückwirft.
Die versteckte Kamera rendert die Szene aus ihrer Sicht erneut und kann diese wiederum auf eine Ebene projizieren, die uns dann den Raum gespiegelt zeigt, was eine sogenannte Planar Reflection erzeugt. Das kommt der physikalischen Realität von Spiegeln schon ziemlich nahe.
Damit das glaubhaft aussieht und funktioniert, muss Code It All allerdings ziemlich viel Code schreiben. Es reicht nicht, einfach nur Kamera und Ebene im Level zu platzieren und sie mit der Szene zu verknüpfen. Bei seinen Tests entpuppte sich zudem auch dieser Ansatz durch das doppelte Rendern als sehr leistungshungrig.
Diese Methode löst das Spiegelproblem ebenfalls nicht sehr elegant, wird aber öfter eingesetzt als das bloße Kopieren. Gerade für schlichte und minimalistische Räume, die reflektiert werden sollen, reicht sie oft aus. Auf YouTube finden sich auch zahlreiche Tutorials rund um andere Engines wie die Unreal Engine 5:
Link zum YouTube-Inhalt
Mathematik statt Magie
Weniger beeindruckend, aber dafür schonender sind Screen Space Reflections (SSR). Diese Technik ist in Spielen dazu da, um Reflektionen ganz grundsätzlich zu simulieren, etwa bei Wasser oder polierten Metalloberflächen. Sie tastet sozusagen den sichtbaren Bildschirminhalt ab und kalkuliert möglichst glaubwürdige Spiegelungen aus dem, was direkt vor dem Spiegel liegt.
Dass nur das berechnet wird, was die Kamera wirklich sieht, kommt der Performance zugute, kann die Szene aber weniger realistisch wirken lassen, weil eben nichts gespiegelt wird, das sich aktuell nicht im Blickfeld befindet. Außerdem kann es passieren, dass der Rücken der Spielfigur reflektiert wird, auch wenn diese mit dem Gesicht zur Oberfläche steht.
Eine weitere Methode – Cube Maps – funktioniert sehr ähnlich und bezieht sich vor allem auf spiegelnde Objekte, die nicht flach sind. Ihr könnt sie euch wie einen Würfel, der an seinen sechs Seitenflächen über Texturen die Umgebung im Stil einer Environment Map reflektiert. Anhand dieser Texturen legt der Entwickler eben fest, was wo gespiegelt wird und was nicht:
Link zum YouTube-Inhalt
Schöner Schein
Die letzte Methode, die Code It All ausprobiert, ist eigentlich nicht für Spiegelungen gedacht. Sie kann aber beeindruckende Reflektionen in Kombination mit einer ansprechenden Beleuchtung erzeugen. Er setzt die Global Illumination (SDFGI) der Engine ein.
Das stimmungsvolle Licht hat natürlich seinen Preis – auch hier leidet die Performance. Auf diesem Weg sehen vor allem die gespiegelten Lichteffekte toll aus, allerdings wirken Formen leicht verschwommen und auch die Spielfigur taucht nicht auf, sodass es sich nicht wirklich für einen klaren und geraden Spiegel eignet.
Erst als er mit VoxelGI (eine weitere Variante von Real-Time Global Illumination in Godot) experiementiert, wird das Bild glaubwürdiger und bildet auch die Spielfigur ab – wenn auch mit sehr hohen FPS-Einbußen.
So richtig überzeugen kann ihn am Ende keine Methode vollends. Allerdings existiert natürlich noch die Technologie, die seit Jahren immer wieder im Gespräch ist: Raytracing.
Echte Spiegel
in Spielen - und ihr Preis
Raytracing ist nicht nur die inzwischen beliebteste Methode bei AAA-Spielen, sondern simuliert das weiter oben angesprochene Verhalten von Licht und Reflektionen am realistischsten – wenn auch wie bei den anderen Ansätzen zu einem hohen Leistungspreis.
Wie das in Aktion aussehen kann, zeigt zum Beispiel dieser Nvidia-Raytracing-Trailer zu Alan Wake 2:
1:48
NVIDIA zeigt, wie Alan Wake 2 von DLSS 3.5 und Raytracing profitiert
Insgesamt kommt Raytracing in Spielen einem echten Spiegel am nächsten, zumindest, wenn die eigene Hardware mitspielt und es auf dem höchsten Niveau darstellen kann. Wie der Name schon andeutet, basiert die Technik auf dem genauen Verfolgen der Lichtstrahlen in einer Szene.
Diese Pfade orientieren sich meistens am Blick des Spielers (also der Kamera) und prallen dann von den Objekten in der Umgebung ab. Der Renderer schaut sich dann diese Begegnungen an und simuliert, wie das Licht in der Realität mit den jeweiligen Oberflächen interagieren würde; also etwa, ob es zu einer Reflektion käme und wie stark diese ausfallen würde.
Am Ende führen also viele Wege zum Ziel und welchen Entwickler wählen, hängt nicht immer nur davon ab, wie gut etwas aussieht. Da man auch die Performance im Blick behalten muss, wird manchmal lieber getrickst oder ein nicht ganz so perfekte Reflektion in Kauf genommen – immerhin steht dann letztlich doch der Spielspaß im Fokus.
Nur angemeldete Benutzer können kommentieren und bewerten.
Dein Kommentar wurde nicht gespeichert. Dies kann folgende Ursachen haben:
1. Der Kommentar ist länger als 4000 Zeichen.
2. Du hast versucht, einen Kommentar innerhalb der 10-Sekunden-Schreibsperre zu senden.
3. Dein Kommentar wurde als Spam identifiziert. Bitte beachte unsere Richtlinien zum Erstellen von Kommentaren.
4. Du verfügst nicht über die nötigen Schreibrechte bzw. wurdest gebannt.
Bei Fragen oder Problemen nutze bitte das Kontakt-Formular.
Nur angemeldete Benutzer können kommentieren und bewerten.
Nur angemeldete Plus-Mitglieder können Plus-Inhalte kommentieren und bewerten.