Echtzeit-Erklärungen

Was ist Echtzeit-Raytracing und warum sollten Sie sich Gedanken darüber machen?

Mit freundlicher Genehmigung von Epic Records
In den letzten drei oder vier Jahren haben Sie wahrscheinlich häufiger von Echtzeit-Raytracing gehört. Freunde und Bekannte haben Ihnen vielleicht sogar geraten, eine der heiß begehrten NVIDIA RTX-Grafikkarten für Ihren nächsten PC oder Laptop zu holen. Andererseits wissen Sie vielleicht noch nicht so recht, was die ganze Aufregung überhaupt soll. In dem Fall ist dieser Artikel genau richtig für Sie.

Worum handelt es sich bei Raytracing allgemein?

Fangen wir mit den Grundlagen an. Wir betrachten Raytracing allgemein und heben die Unterschiede zum Rasterisierungsverfahren hervor, die es in den allermeisten Fällen ersetzen wird. 

Sowohl Rasterisierung als auch Raytracing sind Rendering-Verfahren, die in der Computergrafikverarbeitung eingesetzt werden, um die Farbe von Pixeln zu bestimmen, die auf dem Bildschirm ein Bild erzeugen, oder die auf der Festplatte gespeichert werden, wenn Sie etwas rendern. 

Rasterisierung funktioniert folgendermaßen: Ein Objekt wird in einer Szene von hinten nach vorn gezeichnet. Ein 3D-Objekt wird so mit Transformationsmatrizen auf eine 2D-Ebene projiziert. Dabei wird die Farbe jedes Pixels basierend auf Informationen (Farbe, Textur, Normal Map), die im Mesh (dem Modell) gespeichert sind, und der Beleuchtung in der Szene bestimmt. Das Verfahren ist in der Regel schneller als Raytracing, aber es kann keine Effekte simulieren, die auf reflektiertem Licht basieren, etwa echte Spiegelungen, Lichtdurchlässigkeit oder Umgebungsverdeckung.
Raytracing funktioniert anders. Hier wird ein Lichtstrahl vom Standpunkt der Kamera ausgesendet. Der Weg des Strahls wird durch sämtliche Reflexionen und Brechungen hindurch bis zur Lichtquelle verfolgt und dabei werden Farbinformationen gesammelt und angewendet. Da es das physikalisch korrekte Verhalten von Licht nachbildet, ermöglicht das Verfahren eine viel höhere Grafikqualität und bessere fotorealistische Resultate als Rasterisierung. Weichere, detailliertere Schatten, Umgebungsverdeckung und präzise Reflexionen und Lichtbrechungen sind nur einige Beispiele dafür. Diese ganzen Vorteile haben aber ihren Preis: Geschwindigkeit.

Was ist Echtzeit-Rendering?

Bei einem Kinofilm – egal, ob es ein realer Film mit echten Menschen und Umgebungen ist oder eine computergenerierte Welt – ist das fortlaufende Bild, das Ihr Gehirn wahrnimmt, eine Abfolge von 24 Einzelbildern, die pro Sekunde abgespielt werden. 

Bei computergenerierten Filmen muss jedes einzelne dieser Bilder gerendert werden. Ein Computer muss berechnen, wie jedes Pixel in einem Bild aussehen soll. In der traditionellen Computergrafik-Verarbeitungspipeline (CG) wurde das bisher mit Offline-Renderern gemacht. Es war nicht ungewöhnlich, dass ein einziges Bild Stunden an Renderzeit benötigte, um die gewünschte Grafikqualität und Bildauflösung zu erreichen.

In Videospielen und anderen interaktiven Anwendungen, bei denen nicht von vornherein klar ist, was die Kamera zu einem bestimmten Zeitpunkt sehen wird, müssen die Bilder jedoch zu genau dem Zeitpunkt gerendert werden, an dem sie sichtbar sind – also in Echtzeit. Spiele werden heute mit einer Bildwiederholrate von 60 oder sogar 120 Bildern pro Sekunde gerendert. Da bleiben nur wenige Millisekunden pro Bild für das Rendern.

Das Rasterisierungsverfahren ist schnell genug, sodass es seit Jahrzehnten in Spielen Echtzeit-Rendering ermöglicht, allerdings sind dafür gewisse Kompromisse und clevere Tricks nötig. Bis vor Kurzem wurde Raytracing noch ausschließlich für Offline-Rendering genutzt. Der einzige Einsatzbereich von Raytracing in Spielen waren Zwischensequenzen, die wie Filme vorher gerendert wurden und dem Spieler als Videos angezeigt wurden, mit denen man nicht interagieren konnte.

Was hat Echtzeit-Raytracing möglich gemacht?

Was hat sich jetzt geändert? 2018 traten zwei technologische Katalysatoren gleichzeitig in Erscheinung: Microsofts DXR (DirectX Raytracing) Framework und NVIDIAs RTX-Plattform. Epic Games kooperierte mit NVIDIA und ILMxLAB und konnte so im März 2018 auf der GDC mit der Reflections-Demo zum ersten Mal Echtzeit-Raytracing vorführen. In dieser Demo kamen Charaktere aus Star Wars: The Last Jedi vor.
Hier werden Ihnen texturierte Flächenbeleuchtung, Raytracing-Flächenbeleuchtung, Raytracing-Reflexionen, Raytracing-Umgebungsverdeckung, Kino-Schärfentiefe und NVIDIAs Echtzeit-Rauschentfernung demonstriert – alles in Echtzeit verarbeitet! 

Das waren die frühen Tage. Der Prototypencode der Unreal Engine war noch nicht marktreif für Benutzer, und die Hardware, um die Demo in Echtzeit auszuführen, bestand aus einer NVIDIA DGX Station mit vier NVIDIA Volta GPUs, die je circa 70.000 USD kosteten. Weder die Software noch die Hardware waren zu dem Zeitpunkt wirklich für Endbenutzer zugänglich.
 

Ist Echtzeit-Raytracing was für jeden?

Machen wir einen Sprung ins Jahr 2018 zur Gamescom. Hier demonstrierte NVIDIA Reflexionen, die in Echtzeit auf nur einer der kürzlich angekündigten Grafikkarten vom Typ GeForce RTX 2080 Ti lief. Die GPU sollte nur noch rund 1.200 USD kosten. 

Auf der GDC im März 2019 stellte Epic Games seine Echtzeit-Raytracing-Technologie als Beta-Angebot für die Unreal Engine 4.22 vor. Dafür wurde ein hybrider Ansatz gewählt: Raytracing-Funktionen werden für dafür geschaffene Prozesse genutzt und für solche Prozesse, die nicht von Raytracing profitieren, mit traditionellen Raster-Techniken verknüpft, um Ergebnisse in Echtzeit zu erzielen.

Im Rahmen der Ankündigung demonstrierten Goodbye Kansas und Deep Forest Films mit „Troll“, einem Echtzeit-Video mit digitalen Menschen, wie enorm sich die Software in den letzten 12 Monaten weiterentwickelt hat. 
Bis zum heutigen Tag und mit Unreal Engine 5 hat Epics Echtzeit-Raytracing-Software zahlreiche Updates bei Leistung, Stabilität und Funktionsumfang erhalten. Zudem sind RTX-Grafikkarten für nur 500 USD nun in der Lage, Raytracing in Echtzeit auszuführen. Obendrein können Sie sich die Unreal Engine ganz und gar kostenlos herunterladen und direkt mit der Arbeit loslegen. In Kombination mit den relativ erschwinglichen RTX-Grafikkarten steht Echtzeit-Raytracing somit einem viel breiteren Anwenderspektrum als je zuvor zur Verfügung. 

Welche Vorteile bietet Raytracing?

Werfen wir einen Blick auf die Vorteile von Raytracing, egal ob Echtzeit oder offline. 

Präzise Reflexionen verleihen einer Szene sehr viel mehr Glaubhaftigkeit. Raytracing-Reflexionen unterstützen mehrere Lichtbrechungen, sodass sie Interreflexionen auf spiegelnden Oberflächen erzeugen können, wie es auch in der Realität geschieht. Sie reflektieren auch Objekte, die sich außerhalb des Sichtfelds befinden. Für Automobildesigner und Werbedesigner ist die Art, wie Licht von Oberflächen reflektiert wird, ungeheuer wichtig. Mit Raytracing können sie das visualisieren, bevor das Auto überhaupt gebaut wurde.
Mit freundlicher Genehmigung von GIANTSTEP
Raytracing-Schatten können sanftere Umgebungsbeleuchtung für Objekte in einem bestimmten Umfeld erzeugen. Damit hat ein Objekt abhängig von der Lichtquellengröße und dem Lichteinfallwinkel einen schärferen Schatten näher am Objekt. Je weiter sich der Schatten vom Objekt entfernt, desto unschärfer und breiter werden die Schattenränder. Raytracing-Schatten verankern ein Objekt nicht nur in der Szene, sie fangen auch feine Details beispielsweise an gepolsterten Objekten ein, wodurch Innenräume noch überzeugender werden. Raytracing-Schatten erlauben es Architekten, realitätsnahe und präzise Sonnenbewegungen in die Planung einzubeziehen.
Globale Beleuchtung simuliert, wie die natürlichen Interaktionen von Licht mit Objekten die Farben anderer Objekte in der Szene beeinflussen. Dabei wird berücksichtigt, wie stark Objekte Licht abhängig vom Oberflächenmaterial absorbieren und reflektieren. Das steigert den Realismus einer Szene ungemein. Mit Raytracing wird die globale Beleuchtung in jedem Frame berechnet und nicht vorher in die Szene fest integriert. So kann sich die Beleuchtung im Laufe der Zeit verändern, wenn beispielsweise Lichter an und ausgeschaltet werden, die Sonne aufgeht oder jemand eine Tür öffnet. Mit Lumen aus der Unreal Engine erhalten Sie ein komplettes System für globale Beleuchtung und Reflexionen, das mehrere Raytracing-Verfahren anwendet.
Umgebungsverdeckung beschreibt die Beschattung von Gebieten, wodurch Umgebungslicht (Licht, das nicht aus einer Lichtquelle stammt) abgeschirmt wird. Beispiele dafür sind Kanten und Ecken, wo Wände aufeinandertreffen, oder Falten in der Haut. Raytracing-Umgebungsverdeckung ist sehr viel präziser (und damit glaubhafter) als Screen-Space-Umgebungsverdeckung. 
Für Renderings im Außenbereich oder von Innenräumen mit großen Fenstern ist es essenziell, das Licht vom Himmel möglichst genau nachzubilden, um eine glaubhafte Szene zu erschaffen. Mit Raytracing können Sie Bilder mit einem hohen Dynamikbereich verwenden, um eine Szene zu beleuchten. So erschaffen Sie subtile, sanfte Effekte, die die Realität täuschend echt nachbilden. 
Mit freundlicher Genehmigung von ARCHVYZ, Design von Toledano Architects
Neben all diesen Vorteilen ist Raytracing auch in der Anwendung weitaus unkomplizierter als traditionelle Methoden wie Tiefenkarten-Schatten, gebakte globale Beleuchtung und Reflexionspunkte oder -ebenen.

Wer setzt Echtzeit-Raytracing ein?

Viele Entwickler haben das Ziel, immer glaubhaftere und realistischere Erlebnisse zu entwickeln. Für sie ist Echtzeit-Raytracing wie geschaffen. Da AAA-Titel aber häufig eine drei bis vier Jahre dauernde Entwicklungszeit haben, mussten sich Spieler bis jetzt gedulden, um ebenfalls in den Genuss dieser neuen Technologie zu kommen. Nun aber wächst die Zahl der Spiele, die dank Echtzeit-Raytracing unglaubliche Grafikqualität bieten, immer schneller. Darunter sind Werke wie Deliver Us Mars, Ghostwire: Tokyo und Hellblade: Senua’s Sacrifice. An vielen weiteren Titeln wird eifrig gearbeitet.
Neben Videospielen wird Echtzeit-Raytracing in der Unreal Engine auch in der Architekturvisualisierung (wie in diesem interaktiven Verkaufsprogramm von Buildmedia), beim Automobildesign (zum Beispiel diese VR-Design-Überprüfungsanwendung von Subaru), in der virtuellen Produktion von Filmen und Fernsehsendungen (darunter diesem Werbefilm von Volkswagen, wie das Unternehmen nachhaltigere Werbung produziert) und in vielen anderen Echtzeit-Anwendungsbereichen eingesetzt. Sämtliche Anwendungen, die möglichst realistische Erlebnisse bieten wollen, profitieren enorm von Echtzeit-Raytracing: von virtuellen Konzerten bis Modeanprobe-Applikationen im Internet und noch viel mehr. Dank der Simulation des natürlichen Lichtverhaltens sind Echtzeit-Raytracing-Erlebnisse bedeutend immersiver und glaubhafter. 
Mit freundlicher Genehmigung von Epic Records
Echtzeit-Raytracing sorgt auch bei der Produktion von animierten Inhalten für Film und Fernsehen für große Umwälzungen. Ein beeindruckendes Beispiel dafür ist die Serie „Armored Saurus“ von Studio EON, bei der virtuelle Produktionstechnologien zum Einsatz kamen. Wenn man Szenen in einem Bruchteil der Zeit rendern kann, die früher mit traditionellen Methoden nötig war, und trotzdem die visuelle Qualität liefern kann, die die Zuschauer wünschen, dann spart man nicht nur Produktionskosten, sondern kann auch bis zur letzten Minute weiter an der Qualität feilen, um die bestmögliche Qualität für die Sendung zu erreichen.
Mit freundlicher Genehmigung von Armored Saurus | Studio EON

Erste Schritte mit Echtzeit-Raytracing

Wenn Sie Echtzeit-Raytracing in der Unreal Engine jetzt selbst ausprobieren möchten, dann laden Sie sich die Software gleich kostenlos herunter. Werfen Sie auch einen Blick in unsere Dokumentation, wo Sie die Systemanforderungen finden. Sie erfahren auch, wie Sie Echtzeit-Raytracing aktivieren, und lernen weitere Details zu den Funktionen. 

Bevorzugen Sie Videotutorials? Dann besuchen Sie die Epic Developer Community. Dort finden Sie Hunderte Stunden an kostenlosen Online-Lerninhalten, einschließlich Kursen rund um das Thema Raytracing.

Zudem können Sie auch mehr über eine alternative Raytracing-Technik lernen, die in der Unreal Engine verfügbar ist: Path Tracing. Dabei handelt es sich um ein progressives, Hardware-beschleunigtes Rendering-Verfahren, das die Nachteile von Echtzeit-Funktionen mit physikalisch korrekter und kompromissloser globaler Beleuchtung, Reflexionen und Lichtbrechung an Material usw. ausgleicht.
Mit freundlicher Genehmigung von ARCHVYZ, Design von Toledano Architects

Weitere Echtzeit-Erklärungen


Echtzeit-Erklärungen

Was ist ein 3D-Animator?

Echtzeit-Erklärungen

Was ist Erweiterte Realität?