Ist Raytracing mainstreamtauglich?
Wie stellen sich die klugen Köpfe hinter Geforce & Co. die Zukunft der 3D-Grafik vor? Dieser Artikel von Nvidias Chef-wissenschaftler David Kirk zeigt künftige Möglichkeiten und neue Einsatzgebiete für die Rechenleistung der GPU. [br]
Ist Raytracing mainstreamtauglich?
Nach einigen Internet-Blogs und Berichten in der Presse werde die Zukunft der 3D-Grafik auf einer Technik namens Raytracing beruhen und somit sei die Leistungsfähigkeit der Rasterisierung (Grafikeinheit) irrelevant. Während wir den Ansatz des Interaktiven Raytracings (IRT) sehr begrüßen, muss auf der anderen Seite konstatiert werden, dass dieser enorme Rechenleistung benötigt. IRT und andere von uns verfolgte Denkansätze werden noch mindestens für zehn Jahre die Kreativität der GPU-Designer herausfordern. Diese Möglichkeit, weiterhin innovative Ideen in die GPUs der Zukunft zu integrieren, wird die GPU-Industrie lebendig und wettbewerbsfähig halten.
Aber anstatt das Rad neu erfinden zu wollen und alle bisherigen Fortschritte wegzuwerfen, glauben wir, dass es besser ist, die bisherigen Investitionen der gesamten Industrie in Direct X und Open GL zu nutzen. Wir glauben, die wertvollsten und besten Architekturen sind die, die bisherige Standards wie x86, Windows, HTML und TCP/IP erweitern, statt alle Brücken hinter sich abzubrechen. Die Bewahrung dieser Investitionen ist wichtig. Nicht nur, damit die aktuelle Produktivität von Entwickler und Anwendung erhalten bleibt, sondern auch im Hinblick auf künftige Anwendungen.
Außerdem ist Raytracing kein Allheilmittel oder gar das Ziel per se, sondern nur eine - potenzielle - Art, leichter an gute Bilder zu kommen. Auch wenn manche sagen, Raytracing sei korrekter oder "die [einzig] wahre Art", sind sowohl Raytracing als auch Rasterisierung nur Annäherungen an die echte physikalische Lichtreflexion von Oberflächen. Keines der beiden ist inhärent besser oder schlechter - sie sind nur verschieden. Drei mögliche Gründe, Raytracing zu nutzen, sind:
• Einfache Programmierung
• Schnellere visuelle Effekte
• Bessere visuelle Effekte
Quelle: Bild: Nvidia
Nvidias David Kirk über die Zukunft der GPU: Global Illumination (hier aktiv) via Raytracing - kein Problem für die GPU (Bild: Nvidia)
Gehen wir die drei Punkte im Folgenden einmal im Einzelnen durch:
Einfachere und einheitliche Programmierung
Einfache Programmierbarkeit ist für 3D-Grafik so wichtig wie für viele andere Anwendungen auch. Von Raytracing glaubt man, es sei einfacher für die Programmierer als Rasterisierung, weil Raytracing alle Aufgaben mit einem einheitlichen Ansatz erledigen kann. Und obwohl es stimmt, dass man Strahlen für jeden möglichen visuellen Effekt verfolgen kann, handelt es sich dabei nicht in allen Fällen um den besten und vor allem nicht um den schnellsten Ansatz.
Schnellere visuelle Effekte
Raytracing wird niemals so schnell wie Hardware-Rasterisierung sein, wenn es rein um die Sichtbarkeit von Objekten geht, die das Auge des Spielers auf dem Schirm erkennt. Einfache Sichtbarkeit ist zudem nicht genug: Wir möchten alle gern auch Anti-Aliasing, also geglättete Kanten. Raytracing kann das zwar durch eine einfache Erhöhung der Anzahl von Strahlen erreichen, aber diese Methode ist aufwendiger und langsamer, als wenn man die dedizierte GPU-Hardware nutzt.
Bessere visuelle Effekte
Bei Schatten zum Beispiel handelt es sich um einen optischen Effekt, der sehr schwierig wirklich "gut" mit Rasterisierung harmoniert. Es ist kompliziert, Schatten mit harten Kanten zu rendern, ohne Aliasing zu erzeugen; es gibt keine Verfahren, weiche Schattenkanten ohne Fehler oder Artefakte zu erzeugen, und auch keine, um die verschiedenen Interreflexionen des Lichts darzustellen. Diese Effekte sind tatsächlich Gebiete, in denen Raytracing eine allgemeingültigere Lösung bieten kann. Allerdings ist eine wirklich überzeugende Beleuchtung eines Raumes, in der das Licht von Oberflächen wiederum auf andere Oberflächen reflektiert wird, jeder Bildpunkt also gleichzeitig eine Lichtquelle und ein Lichtblocker ist, mit einer enormen Anzahl von Strahlen verbunden, die auf modernen CPUs einfach nicht praktisch durchgerechnet werden kann. Die parallelen Recheneinheiten in einer GPU können ebenfalls für Raytracing genutzt werden. Das Ziel, ein merklich besseres Bild als mit aktueller Rasterisierung zu erzeugen, ist schwierig, aber erstrebenswert. Das ist einer der aufregendsten Teile der Computergrafik - wir sind niemals am Ziel. Es gibt immer etwas noch besser zu machen. Als Beispiel ist das Bild der Kathedrale in diesem Artikel in zwei Versionen vorhanden. Bild 1 könnte sowohl mit Raytracing als auch mit Rasterisierung erzeugt werden. Es gibt darin keine besonderen Techniken, Schatten oder globale Beleuchtung zu simulieren. Bild 2 nutzt hingegen globale Beleuchtung - dabei handelt es sich um den Effekt, Licht zwischen Oberflächen hin- und herreflektieren zu lassen. Der hintere Bereich der Kathedrale - hinter der Lichtquelle liegend - wird durch die Reflexionen des Lichts auf den Oberflächen im vorderen Teil erleuchtet. Übrigens: Beide Bilder wurden auf einer GPU gerendert - GPUs können prinzipiell also dieselben Bilder wie CPUs erzeugen, ob gerendert oder geraytract. Die spezialisierte Hardware der GPU und die zur Verfügung stehenden APIs wie Direct X und Open GL sind mächtige Werkzeuge in Sachen Grafikberechnung.
