Special: Raytracing (Hardware)

von Marcel Kleffmann



Hardware
Entwickler: -
Publisher: -
Release:
kein Termin
kein Termin
kein Termin
Spielinfo Bilder Videos
Die Reduktion der Komplexität

Die Berechnung der Schnittpunkte von Strahl und Objekt können auch von herkömmlichen Shadern und Grafikprozessoren übernommen werden. Bei den RTX-Grafikkarten von Nvidia (Turing-Architektur) sollen eigens dafür vorgesehene "RT-Cores" (Raytracing Cores) bei diesen aufwändigen Berechnungen helfen, trotzdem wird die Komplexität der 3D-Szene im Vorfeld der Berechnung reduziert.

An dieser Stelle kommt eine baumbasierte Beschleunigungsmethode zum Einsatz, die als Bounding Volume Hierarchy oder BVH bezeichnet wird (Details). Die Methode wird dazu verwendet, um zu berechnen, wo die Strahlen und Objekte/Dreiecke sich schneiden. Vereinfacht gesagt prüft der Algorithmus zunächst grob, in welchem Bereich der Szene der zu berechnende Pixel liegt und wird dann sukzessive kleinteiliger und spezifischer bis zum Objekt am Ende. Trotz der Reduktion der Anzahl der erforderlichen Strahl-/Objektschnitttests ist der Prozess sehr aufwändig.

Im Anschluss an den BVH und weiteren Raytracing-Operationen wird ein Entrauschungsalgorithmus (Denoising) angewandt, um die visuelle Qualität des resultierenden Bildes zu verbessern. Letzteres Verfahren ist ebenfalls komplex und wurde in den von Nvidia zur Verfügung gestellten Presseunterlagen weitgehend ausgeklammert (Video). Ohne Denoising ist das berechnete Bild nicht nutzbar.

Weitere Performance-Tricks

Darüber hinaus versucht Nvidia mithilfe von Deep Learning als maschinelle Lerntechnik die Raytracing-Performance durch die Nutzung von Künstlicher Intelligenz zu erhöhen. So werden zum Beispiel weniger Strahlen als erforderlich in die 3D-Szene geschickt, was natürlich die Rechenlast reduziert, aber auch dazu führt, dass manche Bereiche des Bildes keinen korrekten Farbwert haben oder "rauschen".
Die Schnitt-Tests werden zunächst grob durchgeführt und dann immer feiner. Danach wird das Bild "entrauscht".
Die Schnitt-Tests werden zunächst grob durchgeführt und dann immer feiner. Danach wird das Bild "entrauscht". Bildquelle: Nvidia.
Diese Fehler werden mithilfe der KI bzw. der trainierten Daten korrigiert.

Ähnlich funktioniert auch DLSS (Deep Learning Super Sampling) als einer auf Künstlicher Intelligenz und trainierten Daten fußender Algorithmus zur Kantenglättung bei Auflösungen meist über 1080p. Bei DLSS werden die "Tensor Cores" im RTX-Grafikchip eingesetzt. Diese Rechenkerne werden beim De-Noising nicht benutzt, wie es in einer früheren Version des Artikels stand.

Raytracing On = Niedrigere Bildwiederholrate

Trotz aller technischer Kniffe und Einschränkungen beim Einsatz stellt Raytracing hohe Anforderungen an die Hardware. Der Einfluss auf die Bildwiederholrate zwischen aktiviertem und ausgeschaltetem Raytracing ist enorm. Im Vergleich zu den bisherigen Rendering-Methoden sind die optischen Verbesserungen oftmals schwerer zu erkennen, weil man einerseits an die Darstellung via Rastergrafik gewöhnt ist und andererseits in vielen schnellen Spielen solche Grafikfeatures wie Reflexionen und Schattenwurf weniger prominent wahrgenommen werden.

Mit DirectX und Vulkan

Die wohl gängigste Software-Schnittstelle wird DirectX Raytracing (DXR) in DirectX 12 unter Windows 10 sein. Etwaige Raytracing-Rechenschritte können über DXR an die zuständigen Recheneinheiten - zum Beispiel auf den RTX-Karten - verwiesen werden.
Mögliche Anwendungsbereiche von Raytracing. Von links nach rechts: Umgebungsverdeckung bzw. Objektverdeckung, Schatten, Reflexionen und globale Beleuchtung.
Mögliche Anwendungsbereiche von Raytracing. Von links nach rechts: Umgebungsverdeckung bzw. Objektverdeckung, Schatten, Reflexionen und globale Beleuchtung. Bildquelle: Nvidia.
Vulkan bietet ebenfalls Hardware-beschleunigte Raytracing-Unterstützung, die rein theoretisch sogar unter Linux lauffähig ist.

In Game-Engines hält die Raytracing-Unterstützung ebenfalls Einzug. Sowohl die Unreal Engine 4 als auch die Unity Engine und Frostbite bieten entsprechenden Support. Die CryEngine setzt derzeit auf Software-Raytracing ohne dedizierte Hardware-Beschleunigung zu nutzen.

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