Special: Raytracing (Hardware)

von Marcel Kleffmann



Raytracing (Hardware) von
Licht, Schatten und Reflexionen
Hardware
Entwickler: -
Publisher: -
Release:
kein Termin
kein Termin
kein Termin
Spielinfo Bilder Videos
Raytracing ist gerade in aller Munde - nicht nur seit der Ankündigung der RTX-Grafikkarten, auch bei der nächsten Konsolen-Generationen fällt dieses Schlagwort immer wieder. Was es mit dieser wortwörtlich genommenen "Strahlen-Verfolgung" auf sich hat und warum es manche Hersteller als "heiligen Gral der Computergrafik" bezeichnen, wollen wir in diesem Special näher beleuchten und auf einige Spiele eingehen, die diesen Ansatz bereits verwenden.

Verfolge die Strahlen!

Raytracing (ray tracing im englischsprachigen Raum) soll für eine realistischere Beleuchtung von komplexen dreidimensionalen Szenen im Bereich der Computergrafik sorgen. Im Vergleich zur aktuell vorherrschenden Methode der Rastergrafik (Rasterization; weitere Details: TU-Berlin) soll Raytracing die Darstellung von Licht, Schatten und Reflexionen/Spiegelungen verbessern. Oftmals ist von fotorealistischen Bildern die Rede.

Der grundlegende Rendering-Algorithmus ist Mitte der 1960er-Jahre entwickelt worden und erfordert in der Regel einen sehr hohen Rechenaufwand (Appel, Arthur (1968); Goldstein, Robert (1971); Nagel, Roger (1971); Quelle: Scratchapixel). Bei den computergenerierten Spezialeffekten (CGI) in Filmen und Serien wird ebenfalls auf Raytracing gesetzt. Die Berechnung dieser Szenen erfolgt jedoch nicht in Echtzeit, wie es für interaktive Erlebnisse erforderlich wäre.

Die Echtzeit-Berechnung solcher Szenen überfordert, auch heute noch, viele selbst extrem leistungsfähige Prozessoren, weswegen derzeit hauptsächlich die vorhandene Technologie mit ausgewählten Raytracing-Elementen ergänzt wird - dies gilt ebenfalls für die RTX-Grafikkarten. Die häufigsten aktuellen Einsatzbereiche sind die Berechnung von Lichteinfall, Schatten, Umgebungsverdeckung (ein Objekt verdeckt ein anderes Objekt) und Reflexionen. Es kommt also eine hybride Rendering-Technik zum Einsatz - teilweise Rastergrafik, teilweise Raytracing. Würde man eine 3D-Szene vollständig und in Echtzeit mit Raytracing berechnen wollen, bräuchte man laut Jensen Huang eine Rechenleistung im Petaflop-Bereich. Der Geschäftsführer von Nvidia mit einem Faible für Lederjacken schätzt, dass es bis dahin noch zehn Jahre dauern könnte …
Die unterschiedlichen Ansätze: Rasterisierung vs. Raytracing. Quelle: Nvidia.
Die unterschiedlichen Ansätze: Rasterisierung vs. Raytracing. Bildquelle: Nvidia.

Strahlen aus dem Auge und nicht in das Auge

Wie der Name vermuten lässt, fußt Raytracing auf Strahlen (Lichtstrahlen) sowie der bekannten Projektion einer dreidimensionalen Szene auf einen zweidimensionalen Bildschirm. Die nachfolgenden Ausführungen sind eine vereinfachte Darstellung des Verfahrens. Komplexere Ausführungen findet man u.a. bei Scratchapixel.

Der angenommene Anfangspunkt (Augpunkt) ist der Nutzer vor dem Bildschirm, der logischerweise den Monitor mit seinen Bildpunktreihen/Pixelreihen betrachtet. Von dem Ausgangspunkt und jedem Bildpunkt werden virtuelle Lichtstrahlen auf die dreidimensionale Spielszene gesendet. Die in der Szene vorhandenen Objekte - wie zum Beispiel Dreiecke/Polygone - werden von diesen Strahlen getroffen/geschnitten, wodurch je nach festgelegter Objektbeschaffenheit, Einfallswinkel, Spiegelung oder Brechung in einem späteren Schritt der tatsächliche Farbwert des Pixels berechnet wird. Dabei ist nur das erste Objekt relevant, das vom Strahl getroffen wird. Im Prinzip funktioniert die Abbildung der realen Welt in unserem Auge genau entgegengesetzt (Licht trifft durch das Auge auf die Netzhaut).
Raytracing-Vergleich in Metro Exodus: Oben mit Raytracing. Unten ohne Raytracing - vor allem der Bereich rechts unten ist zu hell erleuchtet. Dort gibt es eigentlich keine Lichtquelle.
Raytracing-Vergleich in Metro Exodus: Oben mit Raytracing. Unten ohne Raytracing - vor allem der Bereich rechts unten ist zu hell erleuchtet. Dort gibt es eigentlich keine Lichtquelle.
Das Ziel ist es also, den Farbwert eines Pixels auf dem Bildschirm auf Basis des nachgezeichneten Strahlengangs zu berechnen. Da sich die Lichtstrahlen aufgrund von Reflexionen, Brechungen und Co. im gesamten virtuellen Raum ausbreiten können, werden selbst Objekte, die von anderen Objekten verdeckt sind, von manchen Strahlen getroffen und können so in die Berechnung der gesamten Szene einbezogen werden.

Wenn man bedenkt, wie viele Pixel bei der Darstellung in Full HD (1920x1080; ca. 2 Mio.) bei 30 Bildern pro Sekunde berechnet werden müssen, wird ersichtlich, wie hoch der Rechenaufwand ist - zumal die Strahlen noch von weiteren Objekten reflektiert werden könnten. Außerdem gibt es noch Lichtquellen in 3D-Szenen, die außerhalb des Sichtfeldes des Spielers liegen, wie zum Beispiel eine hoch stehende Sonne, die nicht im Blickfeld des Nutzers liegt - und auch ihre Lichtstrahlen müssen in die Beleuchtung mit einfließen. Diese Strahlen werden Sekundärstrahlen genannt, in Abgrenzung zu den Primärstrahlen, die vom Augpunkt ausgehen. Werden sämtliche direkten und indirekten Lichtquellen zur Ausleuchtung einer Szene berücksichtigt, nennt man dies "Global Illumation".

Bei der Rastergrafik werden hingegen nur szenische Objekte berechnet, die sich gerade im Blickfeld des Betrachters befinden, was wiederum Rechenleistung spart. Indirekte Beleuchtung durch Lichtquellen, die sich außerhalb der Szene befinden, fehlt und muss oft durch andere Methoden nachträglich realisiert werden. Auch die Schatten von einer Lichtquelle außerhalb des Sichtfelds werden separat berechnet und später hinzugefügt, was stellenweise zu falschen Darstellungen führt, vor allem wenn die Szene durch die Einwirkung des Spielers verändert wird. Beispielsweise ist schummriges Licht in manchen Bereichen zu sehen, obwohl dort eigentlich gar kein Licht sein sollte. Für die Umgebungsverdeckung und die Berechnung der Verschattung einer 3D-Szene gibt es ebenfalls spezielle Verfahren - wie SSAO, die meist auf Effizienz getrimmt sind und nicht für komplett realistisch aussehende Bilder sorgen.

Kommentare

Leon-x schrieb am
Gummirakete hat geschrieben: ?01.10.2019 08:53
ronny_83 hat geschrieben: ?30.09.2019 12:06 Bei manchen Beispielen hat man eher den Eindruck, es wird eher eine Kameralinse imitiert anstatt das menschliche Auge.
Das beschreibt es ganz gut, finde ich. Der Mensch sieht mit dem Hirn und sieht manches daher anders als reine Technik.
Dann musst du nur warten bis sie dich am Hinterkopf mit einem Anschluss mit der Matrix verbinden. Dann sieht dein Hirn was es sehen will. ;)
Jeder hat eine etwas andere Wahrnehmung oder ist unterschiedlich empfindlich.
Solange man keine direkte Verbindung zum eigenen Gehirn hat sind Games immer nur ein Fenster bzw Kameralinse durch die man blickt.
Zudem sind wir noch weit davon entfernt ein komplettes Bild in Echtzeit zu raytacen. Es fehlen noch zu viele Lichtstrahlen um wirklich alles korrekt zu erfassen.
Entwickler müssen auch noch paar Punkte in Sachen Beleuchtung dann berücksichtigen.
Trotzdem wird es denn immer höheren Aufwand an Fake-Effekte irgendwann ersetzen.
sphinx2k schrieb am
ronny_83 hat geschrieben: ?30.09.2019 12:06 Bei manchen Beispielen hat man eher den Eindruck, es wird (gerade in Ego-Perspektive) eher eine Kameralinse imitiert anstatt das menschliche Auge.
Das denke ich mir jedes mal wenn ich wieder in irgend einer Config herumfrickeln muss um Bewegungsunschärfe aus einem Spiel zu verbannen (Ist besser geworden, viele habe s mittlerweile wieder als Option drin). Einerseits was von realistischer Grafik erzählen, aber dann sowas einbauen. Ja ich weiß es wird gerne gemacht um schwankende FPS bei schnellen Bewegungen zu kaschieren.
Gummirakete schrieb am
ronny_83 hat geschrieben: ?30.09.2019 12:06 Bei manchen Beispielen hat man eher den Eindruck, es wird eher eine Kameralinse imitiert anstatt das menschliche Auge.
Das beschreibt es ganz gut, finde ich. Der Mensch sieht mit dem Hirn und sieht manches daher anders als reine Technik.
Heruwath schrieb am
TaLLa hat geschrieben: ?27.09.2019 17:56 Raytracing ist beeindruckend, wenn es komplett genutzt wird, aber die Tensor Kerne sind einfach viel zu schwach dafür. Auch die GI von Metro ist nur halbgar, dass es in Innenräumen so dunkel ist, ist ganz und gar nicht realistisch, sonst würde man ja auch im echten Leben nichts sehen, wenn man bei halber Sonne im Büro sitzt. Hier passen eben Komponenten der Lichtreflektion im an den Wänden nicht, um den Raum zu erleuchten, außerdem wird immer wieder die Komponente des menschlichen Auges als Restlichtverstärker vergessen. Ich will die Technologie haben, aber solange es nur so halbgar ist, stört es mich auch nicht weiter AMD Karten zu nutzen. Nvidia hat immerhin die Einführung beschleunigt, aber auch gezeigt, warum viele die Jahre vorher sagten, dass Gaming und seine Hardware noch nicht so weit sei.
Bist du dir sicher, dass die Dunkelheit bei Metros GI damit zu tun hat, dass es halbgares raytracing ist? Ich finde, wir sollten uns davon entfernen mit Realismus zu argumentieren und darauf einstellen, dass alle Spiele stilisiert sind.
Seitenwerk hat geschrieben: ?01.10.2019 06:28 Was ich bisher von Raytracing gesehen hab, da stimme ich einigen hier zu, sah in den meisten Fällen eher nach Effekthascherei aus als Realismus. Wenn ich daran denke was Titel ohne Raytracing schon geschafft haben, zb Uncharted oder viele andere, dann sieht man es geht auch ohne Raytracing den gleichen Effekt zu erzielen.
Raytracing macht es halt automatisch statt von Hand gesetzt, verbraucht aber auch unsinnig viel Leistung. Das Thema sehe ich derzeit so wie 4K, lieber Checkerboard Rendering, wo man den Unterschied garnicht sieht und dafür die ganze Leistung in mehr Details oder Physik stecken. Das finde ich bei der Kosten/Nutzen Rechnung persönlich sinnvoller.
Uncharted ist eines der besten Beispiele für ein Spiel, was keine realistische Darstellung anstrebt. Die Grafik von Uncharted ist sehr stilisiert. Natürlich kann man ohne echtzeit...
Seitenwerk schrieb am
Was ich bisher von Raytracing gesehen hab, da stimme ich einigen hier zu, sah in den meisten Fällen eher nach Effekthascherei aus als Realismus. Wenn ich daran denke was Titel ohne Raytracing schon geschafft haben, zb Uncharted oder viele andere, dann sieht man es geht auch ohne Raytracing den gleichen Effekt zu erzielen.
Raytracing macht es halt automatisch statt von Hand gesetzt, verbraucht aber auch unsinnig viel Leistung. Das Thema sehe ich derzeit so wie 4K, lieber Checkerboard Rendering, wo man den Unterschied garnicht sieht und dafür die ganze Leistung in mehr Details oder Physik stecken. Das finde ich bei der Kosten/Nutzen Rechnung persönlich sinnvoller.
schrieb am