Nvision 2008: HD-Raytracing in Echtzeit - Update: Video der GPU-Raytracing-Demo
Nvidia zeigte auf der Haus-Entwicklermesse Nvision einen in Echtzeit mittels Raytracing berechneten Bugatti Veyron - inklusive Antialiasing, den für Raytracing üblichen Mehrfachspiegelungen - in der Full-HD-Auflösung von 1.920x1.080 Pixeln mit 30 Fps. Nötig war dazu allerdings ein Quadro-Plex 2100 D4 mit insgesamt 4 G92-basierten GPUs.
Quelle: Nvidia
Bugatti Veyron im GPU-Echtzeit-Raytracing inklusive Spiegelungen in Spiegelungen, adaptivem FSAA und korrektem Schattenwurf. (1)
Original-Artikel: 29.08.2008
"Wer 1988 eine relativ unspektakuläre Raytracing-Demo in Echtzeit durchführen wollte, brauchte dafür noch eine SGI Reality Workstation", sagte David Luebke. "Heute schaffen das unsere deutlich günstigeren GPUs unter CUDA." Zusammen mit seinem Kollegen Steven Parker hat er eine Technik-Demo entwickelt, in der ein Sportwagen durch eine Großstadt saust. Die Demo feierte auf der Siggraph Premiere und wurde auch auf der NVISION 08 mehrfach vorgeführt. In einem Making-of-Vortrag beleuchteten Luebke und Parker einge Hintergründe. "Manche Leute sagen, dass Raytracing hübsch und Rasterung hässlich sei", kommentierte David Luebke. "Ich sage: Beide sind auf ihre Weise hässlich. Herkömmliche, gerasterte 3D-Grafik ist zwar schnell, doch erfordert einigen Aufwand für optische Spezialeffekte."
Luebkes und Parkers Raytracing-Demonstration besitzt zwei Millionen Polygone, wobei eine Million auf das Fahrzeug und eine auf die Stadtumgebung entfallen - etwa soviel, wie die Unreal Engine 3 gleichzeitig darstellen kann. Dabei kommt Nvidias Quadro Plex 2100 D4 Visual Computing System zum Einsatz, in dem vier GPUs brummen. Das System gibt Fahrzeug und Umgebung in einer Auflösung von 1.920 mal 1.080 Bildpunkten mit 30 Bildern pro Sekunde aus. Farbshader, Schatten, Reflektionen und Lichtbrechungseffekte werden mit fünf "Sprüngen" pro Lichtstrahl berechnet. Bumpmapping, variable Lichtquellen und adaptives Anti-Aliasing bis zu 4x sind weitere Stärken der Demo, deren Objekte in Maya modelliert und mit der Software Collada in die Raytracing-Engine importiert wurden. Texturen- und Vertex-Buffer werden zunächst in OpenGL gefüllt und dann an das in CUDA geschriebene Raytracing-System weiter gereicht, das die Berechnung der einzelnen Lichtstrahlen übernimmt. Je nach Lichtquelle kommen Light- beziehungsweise Miss-Shader zum Einsatz. Prallt der Lichtstrahl von einer Oberfläche ab, wird deren spezifischer Material-Shader aktiv. Schließlich reicht das Raytracing-System die Daten an eine Darstellungs- und Post-Processing-Einheit weiter, die wieder in OpenGL geschrieben wurde.
Zu den Vorteilen des Raytracing-Verfahrens zählt David Luebke ein vereinheitlichtes Rendern mit weniger Algorithmen und ein leichteres Kombinieren von Spezialeffekten. "Doch selbst in Hollywood-Produktionen setzen die Effektgurus aus Geschwindigkeitsgründen nicht ausschließlich auf Raytracing", erklärte Luebke. "Mein Rat an alle Grafik-Experten: Nutzt beide Systeme, Rendern und Raytracing." Zu den größten Kunden von Grafikfirmen, die sich auf Raytracing spezialisiert haben, gehören nach Luebkes Worten vor allem Automobilunternehmen, die ihre zukünftigen Fahrzeuge so realistisch wie nur möglich simulieren wollen. "Spielentwickler schielen vor allem auf den heiligen Raytracing-Gral: indirekte Beleuchtung", sagte Luebke. Weiche Schatten und Reflektionen sorgen dann für noch realistischere Spielwelten.
Für registrierte Nutzer haben wir zwei der Screenshots als Hi-Res-Variante zum Download an diese Meldung angehängt.
Update: 8.5.2009
In einer PDF-Präsentation über die Zukunft des GPU-Computing deutet Nvidias David Luebke, welcher bereits auf der Nvision 2008 die Raytracing-Demo des Bugatti Veyron vorstellte, die Einführung einer CUDA-basierten Ray-Tracing-API an, welche dann natürlich die Rechenleistung der hauseigenen Nvidia-GPUs nutzen wird.
Kommende DirectX-11-Produkte wie der GT300-Chip dürften hier dank der Anforderungen der neuen Microsoft-API für Compute-Shader (Scatter/Gather, mögliche Atomic Read/Writes in das Shared Memory) noch deutlich besser geeignet sein als aktuelle Grafikkarten.
Update: 5.10.2009
Nvidia hat auf der GPU Technology Conference 2009 neben einer neuen Bugatti-Raytracing-Demo auch noch die ältere Variante aus dem Jahre 2008 vorgeführt. Wir wollen Ihnen dieses beeindruckende Video keinesfalls vorenthalten. Ob die GPU-Raytracing-Demo in Echtzeit berechnet wurde und welche GPU dafür zuständig war, entzieht sich unserer Kenntnis.

Das Global-Illumination gibts in der nächsten version, da steht der Veyron allerdings still. Das sieht man auf folgendem Video:
Geforce G300-Fermi: Bilder der Raytracing- und Physik-Demos - Update: Raytracing-Video - Nvidia, Fermi, G300, Grafikkarte, Geforce
Nebenbei nutzt die Echtzeit-Veyrondemo (so wie hier verlinkt) 2x QuadroPlex 2200 D2, also unterm Strich 4xGT200 mit 16GB Framebuffer.
Eine Annäherung per Monte-Carlo-Simulation?! Oder doch nur mit BruteForce Algorithmus?!
Genau so ist es.
Die Leute die bei dem Quake-Spiel mit Raytracing auch immer gesagt haben: "Schaut euch mal die miesen texturen an!", die haben es einfach nicht gerafft.
Dir ist schon aufgefallen, dass viele Techdemos eine noch viel ungenauere bzw. garnicht erst vorhandene Umgebung nutzen? Warum wohl? Weil die Umgebung in diesen Fällen nicht das ist, was präsentiert werden soll.
Hier gehts nicht um irgendein fertiges Spiel.