

Raytracing – die nächste Grafikrevolution?
Nvidia selbst nennt es den grössten Grafiksprung seit Einführung der CUDA-Architektur: Raytracing. Die neue RTX-Grafikkartenserie des Chipherstellers soll erstmals Echtzeit-Raytracing für Otto-Normal-Verbraucher ermöglichen. Was steckt hinter dem schönklingenden Begriff Raytracing und was bedeutet das für dich als Gamer?
Raytracing erzeugt realistische Lichteffekte. Damit sollen Games noch fotorealistischer werden. Microsoft hat eine neue DirectX Raytracing (DXR) API entwickelt und Epic Games wird den Unreal Engine-Entwicklern noch in diesem Jahr Echtzeit Raytracing zur Verfügung stellen. Alles scheint für die neue Grafikrevolution bereit zu sein.
Woher kommt Raytracing?
Wodurch unterscheidet sich Raytracing von Rasterization?
Raytracing zeichnet sich durch die realistische Modellierung einer physischen Umgebung, erfordert aber eine hohe Rechenleistung. Die Rasterung hingegen ist schneller und damit lassen sich viele verschiedene Algorithmen kombinieren. Die Ergebnisse sehen aber unter Umständen nicht so realistisch aus wie mit Raytracing.
Rasterization (Rasterung von Polygonen)
Weitere Algorithmen wie Shading oder Shadowmapping kommen dazu, um die endgültige Farbe eines Pixels zu erzeugen und dieses realer aussehen zu lassen.
Die Rasterung von Polygonen hat ihre Grenzen. Ein ausserhalb des Sichtfeld befindliches Objekt wird beispielsweise nicht berücksichtigt. Dieses Objekt könnte immer noch einen Schatten innerhalb der Szene werfen oder anders sichtbar sein. Einige dieser Effekte können mit zusätzlichen Algorithmen wie Shadowmapping erzeugt werden. Szenen werden aber nie so wie die Realität aussehen.
Das liegt daran, dass Rasterization nicht so funktioniert, wie wir sehen. Raytracing hingegen guckt bei der Natur ab.
Raytracing
Raytracing funktioniert genau umgekehrt wie wir sehen. Beim Sehen empfangen unsere Augen die Lichtstrahlen von Lichtquellen, die von den verschiedenen Objekten, von denen wir umgeben sind, reflektiert werden.
Beim Raytracing wirft die Rendering-Engine einen Lichtstrahl vom Sichtpunkt auf jedes Pixel. Der Sichtpunkt ist deine Perspektive auf das zweidimensionale Bild. Der Strahl dehnt sich in einer Halbgeraden aus, bis er ein dreidimensionales Element des zu rendernden Bilds schneidet. Dieser Schnittpunkt wird verwendet, um die Farbe des Pixels zu bestimmen.
Genaugenommen handelt es sich beim Raytracing-Rendering also um sogenanntes Backward Raytracing, da die Lichtstrahlen vom Sichtpunkt zu ihrer Quelle zurückverfolgt werden. Der ursprüngliche Algorithmus von Whitted basiert übrigens auf Forward Raytracing. Dieser ist für Renderaufgaben nicht geeignet, da zu viele unnötige Berechnungen durchgeführt würden.
Es geht aber noch weiter. Um eine noch realistischere Darstellung zu erreichen, müssen Reflexion und Brechung berücksichtigt werden. Das heisst; die Menge an Licht, die beim Auftreffen reflektiert wird, und die Menge an Licht, die das Material durchdringt. Auch hier werden Strahlen ausgesendet, um die endgültige Farbe des Pixels zu bestimmen.
Zusammengefasst werden beim Raytracing verschieden Typen von Lichtstrahlen eingesetzt. Die Primärstrahlen bestimmen die Sichtbarkeit. Die Sekundärstrahlen bestehen aus Schatten-, Reflexion- und Refraktionsstrahlen und dienen als Beleuchtungsmodell.
Wenn dir das Ganze etwas zu theoretisch war, kann ich dir dieses Tutorial empfehlen. In diesem wird dir in Videos zunächst die Theorie erklärt und dann kannst du das Gelernte üben.
Vorteile von Raytracing
Wie bereits erwähnt, lassen sich auch mit Rastergrafik relativ realistische Lichteffekte erzeugen. Mit Raytracing werden Reflexionen aber perfekt verwaltet, ohne komplizierte zusätzliche Algorithmen. Alles wird direkt vom Rendering-Algorithmus verarbeitet. Dasselbe gilt für Interreflexion, wie z.B. die Reflexion eines Seitenspiegels an der Karosserie eine Autos. Durch Rasterung ist dieser Effekt nur sehr schwer reproduzierbar.
Transparenzeffekte sind ein weiterer Vorteil von Raytracing. Der korrekte Umgang mit Transparenz ist mit Rastern äusserst schwierig, da die Berechnung der Transparenz von der Rendering-Reihenfolge abhängt. Um gute Ergebnisse zu erzielen, müssen transparente Polygone vor der Berechnung des Renderings vom entferntesten von der Kamera zum nahegelegensten sortiert werden.
In der Praxis wäre das aber viel zu rechenintensiv und Transparenzfehler sind immer noch möglich, da die Sortierung nach Polygonen und nicht nach Pixeln erfolgt. Das Raytracing kann Transparenzeffekte elegant verwalten.
Hinzu kommt die Berechnung von Schatten. Beim Rastern wird unter anderem auf Shadowmapping gesetzt. Dieses benötigt aber viel Speicherplatz und Aliasing ist ein Problem. Raytracing löst das ohne zusätzlichen Algorithmus.
Grafikrevolution oder Grafikevolution?
Und dieses Etwas könnte tatsächlich Raytracing sein. Die ersten Trailer zu Raytracing-Games sehen toll aus. Ich wähne mich in einem Animationsfilm, den ich selbst steuern kann. Aber sieh dir die Demos am besten selbst an.
Trotzdem sehen die Demos überwältigend aus und wir dürfen uns wohl tatsächlich über die nächste Grafikrevolution freuen.
Die neuen Grafikkarten bei digitec
RTX 2080 Ti
RTX 2080
Technologie und Gesellschaft faszinieren mich. Die beiden zu kombinieren und aus unterschiedlichen Blickwinkeln zu betrachten, ist meine Leidenschaft.
Praktische Lösungen für alltägliche Fragen zu Technik, Haushaltstricks und vieles mehr.
Alle anzeigen
















