Categories: Sonstiges

Warum Sie keine dedizierte Hardware für das Echtzeit-Raytracing benötigen.

Die Zukunft ist rosig. Was einst als unmöglich galt, ist dank der RTX-Serie von Nvidia nun Realität. Aber jetzt hat ein Unternehmen einen Weg gefunden, Echtzeit-Raytracing auch anderen, gängigen GPUs zu ermöglichen.

Als LucasArts 1990 The Secret of Monkey Island veröffentlichte, war es schon lange offensichtlich, dass Videospiele stark von der Mise-en-Szene des Filmemachens abhängig waren. Erst zehn oder zwanzig Jahre lang waren Computer in der Lage, Szenen zu rendern, die zumindets in einer leicht stilisierten, Pixar-animierten Art und Weise zumindest passable Imitationen der Großbildunterhaltung waren. Trotzdem wird jeder, der in den letzten zehn Jahren ein Videospiel gespielt hat, mit der Vorstellung vertraut sein, dass einige von ihnen gelegentlich verblüffende Realitätniveaus erreichen.

Die Art der Rendering-Technologien, die für große Filme verwendet werden, unterscheidet sich von der für Videospiele vorgesehenen Echtzeit-Wiedergabe, aber Nvidia hat vor kurzem einige Schritte unternommen, um diese Lücke mit der RTX-Serie von GPUs zu schließen. Dazu gehören einige verschiedene Technologien für das Raytracing, wobei der Begriff „Raytracing“ sich bekanntlich darauf bezieht, dass der Computer eine ziemlich wörtliche Simulation der einzelnen Lichtstrahlen macht, die von verschiedenen Oberflächen reflektiert werden. Das ist zwar genau, aber für viele Dinge, insbesondere für Spiele, viel zu langsam.

Das Rendering, das für Videospiele gemacht wird, funktioniert anders: Es simuliert grob, wie sich das Licht in der realen Welt verhält, und überspringt dabei die schwierigen Stellen. Die simulierte Welt besteht aus Tausenden von Dreiecken und für jedes dieser Dreiecke projiziert der Computer eine zweidimensionale Bildschirmdarstellung des Dreiecks, basierend darauf, wo sich seine drei Punkte im 3D-Raum befinden, wo sich die Kamera befindet und worauf sie blickt. Das geschieht Pixel für Pixel, daher Scanline.

Die Textur kann mit einem Bild simuliert werden, wobei jedem Punkt in einem Dreieck Zahlen zugeordnet werden, die bestimmen, welcher Teil eines Bildes des Dreieck bedecken soll. Die Beleuchtung kann simuliert werden, indem dem Polygon je nach Entfernung, Winkel und Farbe des Lichts Helligkeit hinzugefügt wird. Diese Liste von Prozessoren geht weiter und weiter, durch Bump- und Normal-Mapping, Specularity, Nebel, pro-Pixel interpolierte Beleuchtung, Environment- und Reflexion-Mapping, Shadow Mapping, Ambient Occlusion und mehr. Es ist ein Versuch, reale Beleuchtung zu simulieren, ohne die ganze Arbeit einer genauen Simulation der Physik zu leisten.

Schatten.

Aber das von uns beschriebene System sieht keine Möglichkeit vor, dass Objekte Schatten aufeinander werfen, und keine Möglichkeit, dass sie sich gegenseitig reflektieren. Das Shadowcasting kann durch die Wiedergabe der Szene aus der Sicht eines Lichts und die Speicherung eines Bildes angenähert werden, wobei die Grauwerte die Entfernung der verschiedenen Objekte vom Licht darstellen. Wenn ein Licht weiter vom Objekt entfernt ist als der Wert des entsprechenden Pixels in diesem Bild, wird es abgeschattet. Reflexionen können durch die Anwendung eines Bildes, einer Textur Map, angenähert werden, die darstellt, wie die Welt von der Position des fraglichen Objekts aus aussieht. Dieses Bild bleibt bei der Bewegung des Objekts statisch. Bei entsprechender Gestaltung kann das Ergebnis sehr ähnlich wie eine Reflexion der Umgebung aussehen.

Diese Techniken befassen sich nicht mit sich bewegenden Objekten, es sei denn, sie werden bei jedem Bild neu berechnet, um die Bewegung zu berücksichtigen. Oftmals können nur bestimmte Objekte Schatten werfen und empfangen. Zudem werden diese Objekte normalerweise in der Entwurfsphase mit Dingen definiert, die so entworfen wurden, dass diese Einschränkungen im durchschnittlichen Spiel nicht wirklich auftauchen. Die Beleuchtung, die in Videospielen auf feste Oberflächen geworfen wird, wird in der Entwurfsphase vorberechnet und als festes Bild veröffentlicht. Oftmals sind die einzigen Objekte, die die von uns besprochenen Techniken überhaupt verwenden, die Guten und die Bösen, die sich durch verschiedene Umgebungen bewegen können müssen.

Raytracing umsetzen.

Es macht den Anschein, dass wir so viel Aufwand in Kauf nehmen, um es nicht richtig zu machen, dass wir genauso gut anfangen können, es richtig zu machen, worum es beim Raytracing geht. Wenn wir eine Szene raytracen, simulieren wir das reale Licht viel literaler. Wir berechnen Strahlen, wenn sie herumspringen, und ändern ihre Farbe und Helligkeit bei jedem Sprung. Es ist harte Arbeit und wird oft nur für besonders wichtige Objekte in der Szene verwendet. Die RTX-Architektur von Nvidia kann dies, obwohl selbst bei der Blendergeschwindigkeit einer modernen GPU ein Ansatz verwendet wird, der darauf basiert, zufällige Pixel abzutasten und anschließend die Rauschunterdrückung zu verwenden, um die resultierende Fleckenbildung zu verringern.

Und es funktioniert nur auf den GPUs der RTX-Serie von Nvidia. De Entwicklung, die diesen Artikel ausgelöst hat, stammt von Crytek, den Leuten, die die Crysis estellt haben. Crysis verwendete kein Raytracing, aber es verwendete jeden Trick im Buch und erfand einige neue. In einem Schrittm der dazu beiträgt, Nvidias Vendor Lockin auf RTX zu stören, hat das Unternehmen einige harte Arbeit an alternativen Ansätzen für Raytracing geleistet, die auf verschiedenen GPUs funktionieren, und den Kurzfilm Neon Noir produziert, um seine neuen Techniken zu demonstrieren. Zu den zu suchenden Dingen gehören Reflexionen von sich bewegenden Objekten, insbesondere der Drohne, die herumfliegt und Licht auf Dinge wirft. Die Drohne kann sich selbst reflektieren, wobei sowohl das reflektierte Objekt als auch die reflektierende Oberfläche animiert werden.

Die Reflexion der auf der Pfütze liegenden Schalenhüllen zeigt, dass die Reflexionen eine deutlich geringere Polygonzahl aufweisen als das ursprüngliche Objekt. Eine Reflexion ist geometrisch einfach genug. Um eine Reflexion zu simulieren, muss ein Objekt aus einem anderen Blickwinkel neu gerendert werden. Es ist schneller, eine Version dieses Objekts mit niedrigerem Polygon zu rendern.

Es funktioniert also und auf eine Weise, die auf die Leistungsfähigkeit der verfügbaren Hardware skalierbar ist. Es fühlt sich leicht so an, als ob RTX und möglicherweise eine kompatible (oder vergleichbare) AMD-Implementierung zum Mainstream werden könnten, obwohl Crytek sich dessen vermutlich genauso bewusst ist wie wir und seine Technologie möglicherweise so entwickelt hat, dass die Arbeit an Hardware übergeben werden kann wo möglich. Während es in der Vergangenheit noch nie Anzeichen für eine Vereinheitlichung zwischen Echtzeit- und Offline-Rendering gab, ist es jetzt einfacher als je zuvor, sich die beiden Techniken zu unterscheiden. Mit der Fähigkeit des Echtzeit-Renderings, das durch das Dach geht, sieht die Zukunft vielversprechend aus.

Vielen Dank für Ihren Besuch.

3DMaster