Raytracing - Special, Hardware, XboxScarlett, PlayStation5, PC
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.
Verfolge die Strahlen!
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 …
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 .
Strahlen aus dem Auge und nicht in das Auge
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).
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.
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.
Die Reduktion der Komplexität
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.
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".
Diese Fehler werden mithilfe der KI bzw. der trainierten Daten korrigiert.Weitere Performance-Tricks
Ä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.
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.
Raytracing On = Niedrigere Bildwiederholrate
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.
Vulkan bietet ebenfalls Hardware-beschleunigte Raytracing-Unterstützung, die rein theoretisch sogar unter Linux lauffähig ist.Mit DirectX und Vulkan
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.
Derzeit sind es die Grafikkarten von Nvidia, die Hardware-beschleunigtes Raytracing anbieten. Das Unternehmen präsentierte auf der gamescom 2018 die ersten kostspieligen Produkte in diesem Bereich und legte somit vor. Gemeint sind die Modelle aus der Geforce-RTX-Reihe auf Turing-Architektur mit den RT- und Tensor-Recheneinheiten - sowie die kürzlich veröffentlichten, leicht überarbeiteten Super-Modelle dieser Baureihe. Die "Super-GPUs" sollen im Vergleich zu den bisherigen RTX-Modellen einige Architektur- und Prozessoptimierungen, eine bessere Energieeffizienz sowie weitere Verbesserungen aufweisen.
Raytracing-Hardware von Nvidia
Einige GTX-Prozessoren unterstützen Hardware-beschleunigtes Raytracing seit März/April 2019 ebenfalls, wobei der Hersteller angibt, dass mit diesen GPUs nur "wenig aufwändige" Raytracing-Effekte möglich sind. Hierzu gehören GTX 1060 6 GB, GTX 1070, GTX 1070 Ti, GTX 1080, GTX 1080 Ti, Titan X und Titan XP - alle nutzen die Pascal-Architektur. Gleiches gilt für die beiden Turing-Karten der 10er-Reihe (GTX 1600 und GTX 1660 Ti) sowie die Titan V (Volta). Bei vielen zu berechnenden Strahlen und komplexen Effekten sollen die RTX-Modelle klar überlegen sein (Details ). Nvidia spricht von zwei- bis dreifacher Leistung.
Die Grafikkarten von AMD bieten derzeit keine explizite Raytracing-Beschleunigung auf Hardware-Ebene - hierzu zählt ebenso die erste Iteration der RDNA-Architektur (GPU: Navi 10). Die Berechnungen könnten zwar normale Shader übernehmen, die sind jedoch langsamer als die dedizierte Technik. Dennoch hat AMD durchblicken lassen, dass zukünftige Navi-GPUs (Jahr 2020) über eine Hardware-Beschleunigung verfügen sollen. Es wird spekuliert, dass diese Technologie in der Xbox Scarlett zum Einsatz kommen wird - entweder als Custom-GPU-Feature für Microsoft oder direkt für alle Modelle.
Raytracing-Hardware von AMD
Ansonsten verfolgt AMD - wie Nvidia - eine mehrstufige Strategie und will immer mehr, ausgewählte Raytracing-Features über einen längeren Zeitraum in die eigenen Produkte implementieren. Als weitere Zukunftsmusik wird Cloud-Berechnung von kompletten Raytracing-Szenen angeführt.
Welche Strategie Intel verfolgt, ist noch unklar. Der Chip-Riese arbeitet in Zusammenarbeit mit Wargaming an der Raytracing-Realisierung in World of Tanks - zur Darstellung von weicheren und realistischeren Schatten an den Fahrzeugen der Spieler. Das Raytracing funktioniert auf allen Grafikkarten, die DirectX 11 (ohne DXR) oder höher unterstützen, ist allerdings auf intakte Fahrzeuge und jene, die sich im direkten Sonnenlicht befinden, beschränkt. Die Unterstützung soll in den kommenden Updates für World of Tanks eingeführt werden.
Was macht Intel?
Die ersten Spiele mit Hardware-beschleunigten Raytracing-Funktionen waren Battlefield 5 und Shadow of the Tomb Raider im vergangenen Jahr. Beide Titel setzten die Technologie eher in homöopathischen Dosen ein.
Erste Raytracing-Schritte in aktuellen Spielen
Bei Battlefield 5 wurden die Reflexionen der Umgebung auf Fensterscheiben, metallischen Oberflächen oder Pfützen realisiert, wobei der Ursprung dieser Reflexionen nicht im aktuellen Bildausschnitt sein musste. Bei Shadow of the Tomb Raider wurde ein halbes Jahr nach der Präsentation des RTX-Patches der RTX-Patch nachgeliefert, der für realistischere und weichere Schatten-Darstellung sorgt. Allerdings steht der optische Zugewinn durch die Schatten leider in keinem Verhältnis zu dem Absturz der Bildwiederholrate.
Erst deutlich nach der öffentlichen Ankündigung der RTX-Grafikkarten und mit zunehmender Zeit, welche die Software-Entwickler benötigen, um sich mit der neuen Technologie zu beschäftigen, wurden aufwändigere Umsetzungen mit Raytracing realisiert. An dieser Stelle wären vor allem Metro Exodus, Control, Quake 2 (RTX) und Stay in the Light zu nennen - also von den Spielen, die zum aktuellen Zeitpunkt erhältlich und verfügbar sein. Ansonsten gibt es viel Zukunftsmusik.
Während man sich bei Battlefield 5 auf die Darstellung von Reflexionen beschränkt hatte, wird bei Metro Exodus die globale Beleuchtung der 3D-Szenerie mit Raytracing realisiert. Das Spiel nutzt also Raytraced Global Illumination. Die Technologie wird nicht zur kompletten Berechnung der Beleuchtung anhand sämtlicher Lichtquellen einer Szene eingesetzt, sondern ist auf das Licht von Sonne und Himmel beschränkt - oder der zentralen Lichtquelle einer Szene, wenn keine Sonne oder kein Himmel zu sehen sind. Lokale Lichtquellen in der Umgebung - wie zum Beispiel Kerzen oder Lampen -
werden in der Regel nicht mit Raytracing gerendert, um die Schleich-Passagen (laut nVidia) nicht unnötig zu verkomplizieren, schließlich soll man auf einem Blick erkennen können, wann man für einen Gegner sichtbar ist oder nicht. Außerdem wird so Rechenleistung gespart.Metro Exodus
In der Praxis sind die Unterschiede zwischen einer Szene mit und ohne Raytracing oftmals nicht auf einem Blick zu erkennen - meist wirkt die gerenderte Szenerie mit Raytracing dunkler. Manche Elemente z.B. beim Schneesturm zu Beginn sahen ohne Raytracing sogar etwas besser ausgeleuchtet aus. Aber in ruhigen Momenten, in denen man einen genaueren Blick auf die Umgebung werfen kann, zeigen sich durchaus nuancierte optische Unterschiede, die viel zur Stimmungsinszenierung und der düsteren Atmosphäre beitragen können, da sich viel stärkere Kontraste (auch ohne HDR) realisieren lassen - zusammen mit Schatten von sehr weich bis hart.
Die stärksten Unterschiede erkennt man beim Übergang von Innen- und Außenlevels, wenn Licht von außen in ein Innenlevel fällt - oder wenn eine Szene in Innenlevels gezielt beleuchtet wird. Unter freiem Himmel fallen die Effekte weniger ins Auge. Beispiel: Man steht in einem Eisenbahnwagon (Wolga-Level). Direkt vor einem ist eine geöffnete Tür und das Licht von der Sonne dringt in den Raum herein. Es gibt sonst keine weitere Lichtquelle in der Umgebung. Ohne Raytracing sieht man in der Szene rechts von der Tür einen leicht erleuchteten Bereich, obwohl es dort augenscheinlich gar keine Lichtquelle gibt. Mit Raytracing ist es dort wirklich dunkel.
Das Spiel von Remedy Entertainment und 505 Games nutzt mehrere Raytracing-Funktionen, nämlich Reflexionen, transparente Spiegelungen, indirekte Beleuchtung (als Ersatz für Umgebungsverdeckung via Screen Space Ambient Occlusion; SSAO), Kontaktschatten und Effekte für Schutt/Trümmer. Aufgrund der klaren Strukturen im Leveldesign, der erstklassigen Ausleuchtung der Levels, der zahlreichen Details in den Räumen und den vielen spiegelnden Flächen sind die Grafik-Verbesserungen mit Raytracing deutlich spürbarer und eindrucksvoller als in Metro Exodus.
Control
Mit den RTX-Grafikkarten lässt sich die Grafikqualität des Spiels am PC merklich steigern - allerdings auf Kosten der Bildrate. Während Control laut Nvidia auf einer RTX 2060 Super ohne RTX-Effekte mit 50 fps in 1440p (960p Renderer) läuft, sinkt die Bildwiederholrate auf knapp unter 30 mit Raytracing (i9-7900X 3,3 GHz, 16 GB RAM). Auch bei anderen RTX-Grafikkarten bedeutet die RTX-Nutzung eine fps-Reduktion um circa ein Drittel. In den kritischen Bereich fällt die Bildwiederholrate nicht.
In jedem Fall müssen die Spieler selbst entscheiden, ob sie lieber auf die bessere Grafik aufgrund der zusätzlichen Raytracing-Grafikfeatures verzichten wollen oder ob sie lieber ein flüssigeres und gleichmäßigeres Spielerlebnis haben wollen. Control ist meiner Ansicht nach der erste Titel bei dem sich das Raytracing wirklich und sichtbar lohnt. Es ist zugleich ein erster Blick in die schöne neue Rendering-Welt. Trotzdem gibt es hier und da auch Rendering-Fehler zu beobachten. Neben etwaigem Rauschen sind manchmal Lichteffekte an Stellen sichtbar, die dort nicht hingehören oder falsch wirken. Diese Macken sind jedoch die Ausnahme.
Quake 2 aus dem Jahr 1997 ist von Nvidia nachträglich mit Raytracing- bzw. Pathtracing-Unterstützung versorgt worden. Bei Quake 2 RTX werden alle Lichteffekte wie Schatten, Reflexionen, Brechungen und mehr in einem einzigen Raytracing-Algorithmus vereint. "Es stellt ein einheitliches Modell für die Lichtberechnung für viele verschiedene Arten von Effekten dar, die traditionell separat mit gerasterten oder hybriden Renderern implementiert wurden", erklärt der Hersteller. Auch hier fallen die Verbesserungen der szenischen Beleuchtung aufgrund der klaren Strukturen und der mittlerweile ziemlich in die Jahre gekommenen Optik sehr eindeutig aus. Quake 2 RTX enthält die ersten drei Einzelspieler-Level des Shooter-Klassikers. Spieler, welche die Vollversion besitzen, können das gesamte Spiel, einschließlich Multiplayer-Deathmatch und Koop-Modus, mit Raytracing spielen.
Quake 2 und Minecraft
Ähnliche Verbesserungen wie bei Quake 2 sind mit der Einführung von Raytracing bzw. Pathtracing in Minecraft zu rechnen. Pathtracing simuliert den Weg von Licht durch eine Szene. Dieses Licht kann von verschiedenen Quellen stammen - wie zum Beispiel von der Sonne, von glühenden Steinen oder von Lava. Die Raytracing-Unterstützung wird als kostenloses Update für die Windows-10-Version von Minecraft erscheinen. Die Unterschiede zwischen der normalen Minecraft-Version und der Variante mit Raytracing sind immens. Stellenweise sieht Minecraft mit Raytracing aus wie ein neues Spiel. Darüber hinaus werkelt Nvidia an einem Paket mit speziellen, hochaufgelösten Texturen für Minecraft auf Basis von PBR (physically based rendering). Die unterschiedlichen physikalischen Beschaffenheiten der virtuellen Objekte beeinflussen somit die Darstellung von Reflexionen und Co.
Es fällt (wenig überraschend) auf, dass ältere Titel, die augenscheinlich eher auf grobere Grafik als auf moderne Prachtoptik setzen, von einem Raytracing-Upgrade am meisten profitieren. Da sich die sonstigen Hardware-Anforderungen bei diesen Titeln eher in Grenzen halten, stehen praktischerweise für Raytracing mehr Ressourcen zur Verfügung. Außerdem sind die grafischen Sprünge bei solchen Titeln leichter zu erkennen, im Vergleich zu den optisch ohnehin schon aufwändigen und ansprechenden Spielen, bei denen die Raytracing-Verbesserungen nicht so schnell ins Auge fallen, schließlich sehen Control und Metro Exodus ohne Raytracing ebenfalls ziemlich gut aus.
In Zukunft werden wesentlich mehr Spiele auf Raytracing-Unterstützung setzen, obgleich nicht alle Spiele auf die volle Bandbreite der Effekte setzen werden, sondern sich womöglich auf einige Effekte wie Reflexionen, globale Beleuchtung oder Schattenwurf beschränken werden. Zu diesen kommenden Titel gehören Deliver Us the Moon (Update nach Re-Release), Call of Duty: Modern Warfare, Cyberpunk 2077, Vampire: The Masquerade - Bloodlines 2, Watch Dogs Legion, Dying Light 2, Synced: Off-Planet, Wolfenstein: Youngblood (via Update), Assetto Corsa Competizione (irgendwann später via Update), Atomic Heart, Doom Eternal, Enlisted, Justice und MechWarrior 5: Mercenaries.
Mehr Raytracing in der Zukunft
In Watch Dogs Legion und Vampire: The Masquerade - Bloodlines 2 werden Raytracing-Reflexionen in Echtzeit geboten. Diese Reflexionen ersetzen Cube-Maps und Oberflächenreflexionen, sodass Fenster, Pfützen, Autos und andere Oberflächen die Umgebung korrekt widerspiegeln - gerade nachts im Regen kommen die Effekte besonders gut zur Geltung.
Bei Synced: Off-Planet wird auf Echtzeit-Raytracing-Schatten und Reflexionen gesetzt. Bei Cyberpunk 2077 heißt es lediglich, dass "die Welt von Cyberpunk von der realistischen Beleuchtung, die Raytracing bietet, sehr profitieren wird". Raytracing-Schatten werden erwähnt. Bei Call of Duty: Modern Warfare ist von der Schatten-Darstellung die Rede.Bis Spiele vollständig und in Echtzeit mit Raytracing gerendert werden können, vergehen noch viele Jahre, sofern nicht Cloud- oder KI-Systeme die Berechnungen übernehmen werden. Bis dahin werden Raytracing-Features punktuell und gezielt in immer mehr Spielen eingesetzt werden. Wenn die Engine- und Spiele-Entwickler mit zunehmender Zeit vertrauter mit der Implementierung der Features werden, auch AMD eigene Hardware ins Spiel bringt und die Next-Generation-Konsolen mit eigener Hardware-Beschleunigung daherkommen, ist davon auszugehen, dass der Raytracing-Zug an Fahrt aufnehmen wird. Bis dahin muss man selbst entscheiden, ob man dem Trend schon jetzt folgen will, was sicherlich mehr Geld kostet - oder ob man noch wartet, bis die Hardware-Komponenten schneller sowie günstiger und die Unterstützung verbreiterter werden. Aktuell lohnt sich in dem Zusammenhang wirklich nur Control ... und das ist ein bisschen wenig. Aber in den kommenden Monaten könnte sich die Situation mit Call of Duty, Watch Dogs, Vampire Bloodlines 2 und Cyberpunk 2077 ändern.
Ausblick