Raytracing: Unterschiede zu 3D-Gaming-Engines, Einsatzgebiete
SpecialDie Präsentation sowie auch die Namen der neuen Grafikkarten von Nvidia haben ein professionelles Verfahren für das Berechnen von 3D-Szenen in Verbindung mit Spielen gebracht: Raytracing. Doch worum geht es bei Raytracing? Wo wurde es bisher schon eingesetzt? Und wird es wirklich bei Spielen im größeren Rahmen zum Einsatz kommen?
Unterschiede zu 3D-Gaming-Engines
Die Unterschiede zwischen klassischem Raytracing und 3D-Engines, die für Games entwickelt wurden, sind vorhanden, aber in vielen Teilen sind die Übergänge zwischen beiden Welten fließend. Vor allem in der nähren Vergangenheit nähern sich die Verfahren mehr und mehr, da Grafikkarten ja auch immer leistungsfähiger werden.
In diesem Artikel
- Seite 1 Raytracing: Einleitung und Erklärung der Funktionsweise
- Seite 2 Raytracing: Unterschiede zu 3D-Gaming-Engines, Einsatzgebiete
- Seite 3 Raytracing: Bisher noch nicht in Games - sorgt Nvidia für einen Umbruch?
- Seite 4 Raytracing: Abschließende Einschätzung und ein Blick die Zukunft
- Seite 5 Bildergalerie
Ein wichtiger Punkt bei 3D-Engines für Spiele ist, dass viele Dinge stark vereinfacht werden, um Rechenzeit zu sparen und trotz hoher Auflösung und Detailreichtum eine Anzahl an Bildern pro Sekunde berechnen zu können, die ein flüssiges Spielen erlaubt. Ein gutes Beispiel sind Reflexionen: in einem Spiegel, der in der Szene zu sehen ist, sind beim Raytracing korrekt berechnete Reflexionen zu sehen, wie sie auch in der Realität physikalisch korrekt entstehen würden.
Quelle: PC Games
Eine vereinfachte Reflexion im Spiegel rechts im Bild bei Resident Evil 7
In modernen 3D-Engines wird für eine solche Reflexion häufig ein Trick verwendet: Man platziert eine weitere Kamera quasi im Spiegel, als wäre der Spiegel selber der Betrachter der Szene, nur eben aus einem ganz anderen Winkel als dem der Hauptkamera. Die Engine berechnet ein Bild aus Sicht des Spiegels und "klebt" das Bild spiegelverkehrt in den Spiegel, nutzt es also quasi als Textur für den Spiegel. Da der Spiegel wiederum in der Regel nur ein kleiner Teil des Gesamtbildes ist, wird die Textur zudem in einer vergleichsweise geringen Auflösung und ohne besondere Effekte berechnet. Für den Nutzer kann dies aber vor allem dann, wenn er nicht in Ruhe stehenbleibt und das Spiegelbild intensiv begutachtet, absolut glaubhaft wirken, vor allem bei flachen spiegelnden Flächen. Wenn man das Bild rein optisch gesehen korrekt berechnet würde, ergäben sich aber freilich trotzdem Unterschiede. Das resultierende Spiegelbild würde erst Recht völlig anders aussehen, wenn es sich bei der spiegelnden Oberfläche nicht um eine plane Fläche handelt, sondern beispielsweise um eine polierte Metallkugel, oder um abgerundete spiegelnde Fenster eines modernen Bürogebäudes. Dass selbst der für Spiegelungen oft verwendete Trick mit der zusätzlichen Kamera, der ja bereits Leistung einsparen soll, immer noch einiges an Performance frisst, merkt ihr an der Tatsache, dass in vielen Spielen in einem Spiegel rein gar nichts zu erkennen ist und dieser eher wie eine dreckige Scheibe wirkt.
Die Entwickler lassen das rechenintensive Detail also häufig einfach weg, und zwar vor allem, um die Performance nicht einbrechen zu lassen, wenn man von einem Blickwinkel, in dem es keine spiegelnde Flächen gibt, in eine Perspektive wechselt, für die spiegelnde Reflexionen berechnet werden müssen. Auf das Thema Spiele und Raytracing werden wir gleich erneut eingehen - aber zuerst wollen wir einen kurzen Ausflug zu der Frage machen, in welchen Bereichen man klassisches Raytracing überhaupt verwendet.
Wo setzt man Raytracing ein?
Bisher wird Raytracing vor allem dort eingesetzt, wo ein fotorealistisches Ergebnis erwünscht ist und man auch genügend Zeit hat, um auf das Ergebnis zu warten. Denn Raytracing benötigt, wie beschrieben, viel Leistung. Vor allem aus Filmen kennt ihr echtes Raytracing - zum Beispiel aus modernen Titeln wie der Transformer-Reihe oder Jurassic World, wobei nicht in allen Filmen auch zu 100 Prozent reines Raytracing zum Einsatz kommt, sondern auch andere 3D-Kniffe. Eines der ersten und bekanntesten Beispiele für Raytracing in Filmen stammt aus dem Klassiker The Abyss von Regisseur James Cameron, bei dem die bekannte Special-Effect-Firma Industrial Light & Magic ein Wesen kreierte, das sich aus dem Meerwassermanifestiert und die Crew einer Unterwasser-Station besucht. Dabei bricht und spiegelt das Wasserwesen die zuvor gefilmte reale Umgebung, was nur durch Raytracing auf eine optisch korrekt wirkende Weise möglich war.
Quelle: Nvidia
Nvidia CUDA Raytracing aus dem Jahr 2009
Für damalige Verhältnisse war dieser Spezialeffekt ein absoluter Meilenstein, der Film bekam nicht zuletzt für diese Sequenz im Jahr 1989 den Oscar für die besten visuellen Effekte. Allerdings dauerte das Berechnen solcher computergenerieten Bildanteile damals bei Filmen mehrere Tage, denn pro Filmsekunde mussten 24 Bilder berechnet werden, und die damaligen Computer konnten ein solches Bild nicht nur in wenigen Sekunden berechnen. Auch heutzutage berechnen starke Supercomputer eine möglichst realistische Computergrafik für Hollywoodfilme nicht in Echtzeit, sondern benötigen Tage - allerdings sind die Details der heutigen 3D-Inhalte auch abermals deutlich aufwändiger geworden und werden, wie FIlmfans sicher wissen, auch viel intensiver eingesetzt. Eine Szene wie bei The Abyss würde heutzutage wiederum keine exorbitante Rechenzeit mehr beanspruchen. Andere Anwendungsgebiete für Raytracing sind neben bewegten Bildern freilich auch Standbilder, zum Beispiel für die Präsentation von Architekturprojekten, Prospektinhalte oder Kunst. Überall, wo Fotorealismus erwünscht ist und nicht in Echtzeit vorliegen muss, wird Raytracing häufig genutzt.
