Zum Hauptinhalt Zur Navigation

GC 08: Larrabee und Quake Wars Ray Traced

Forschungsarbeit bietet noch immer Optimierungspotenzial. Für Intel ist Raytracing ein spannendes Forschungsgebiet. Es verspricht höhere Bildqualität, denn Effekte wie Brechungen und Spiegelungen durch Oberflächen wie Wasser und Glas sind für Raytracing-Spiele kein Problem. Mit der kommenden Larrabee-Grafikkarte kann zudem fehlende Rechenleistung ausgeglichen werden. Golem.de sprach mit Intel-Forscher Daniel Pohl über Vor- und Nachteile von Raytracing, sein neuestes Projekt Quake Wars Ray Traced und die Möglichkeiten, die Larrabee bieten kann.
/ Andreas Sebayang
173 Kommentare News folgen (öffnet im neuen Fenster)

Passend zur Games Convention und dem fast parallel verlaufenen Intel Developer Forum hat Daniel Pohl mit seinem Forschungsteam bei Intel "Enemy Territory - Quake Wars" mithilfe einer Raytracing Engine umgesetzt. Die bestehende Engine wurde weiter optimiert und erreicht auf einem einzelnen Rechner 20 bis 30 Bilder pro Sekunde bei einer Auflösung von 1.280 x 720 Pixeln. Der Forschungsrechner hat es allerdings in sich, denn das System setzt auf eine Hauptplatine mit vier Sockeln, die jeweils mit einer Sechskern-CPU (2,66 GHz) bestückt sind. Intel hat diese CPU noch nicht offiziell vorgestellt.

Ganze 24 CPU-Kerne arbeiten also daran, die Bilder auf den Monitor zu bringen. Immerhin sind die Fortschritte beachtlich. Zum einen handelt es sich jetzt um ein halbwegs aktuelles Spiel, das mit einem Raytracer dargestellt werden kann. Gleichzeitig braucht es keinen Rechnerpark mehr, der etwa genutzt wurde, als Daniel Pohl zusammen mit anderen an der Universität Erlangen und der Universität des Saarlandes Quake 3 Arena mit Raytracing umsetzte. Die letzte Generation des Forschungsprojekts in Form einer Quake-4-Umsetzung kam intern auf höhere Bildraten . Damals stand Pohl noch ein Dual-Xeon-System mit insgesamt acht Kernen zur Verfügung.

Quake Wars Raytraced(öffnet im neuen Fenster) ist offenbar aufgrund der Aktualität etwas anspruchsvoller, ist das Spiel doch erst im Jahr 2007 erschienen . Neben den optischen Verbesserungen erlaubt die neue Raytracing-Engine jetzt auch eine skellettbasierte Animation von Spielfiguren, die leider in dem Video noch nicht zu sehen ist. Insgesamt wurde viel an der Dynamik der Engine gedreht.

Dabei ist der Raytracer trotz der enormen Fortschritte noch immer nicht so optimiert, wie es traditionelle Rasterizer-Spiele sind. Texturkompression wird nicht genutzt und damit wird die Bandbreite auf dem Forschungssystem (nur PCIe x1) zum Flaschenhals und allein das Filtern der Texturen kostet rund 30 Prozent der Rechenzeit. Mehr als 40 Bilder die Sekunde sind technisch derzeit nicht möglich. Das wird sich erst mit der kommenden Technikgeneration ändern, wenn Daniel Pohl auch Zugriff auf Nehalem-Systeme und PCIe der zweiten Generation hat.

Laut Pohl könnte man allein ein Jahr Entwicklungszeit damit verbringen, die Engine weiter zu optimieren, soviel Potenzial sei noch vorhanden. Darum geht es in dem Forschungsprojekt allerdings nicht, vielmehr stehen einzelne Teilbereiche im Fokus. In Zukunft will Intel etwa im Bereich des 3D-Wassers die Berechnung von Wellen mit unterschiedlichen Höhen optimieren. Natürlich wird der Fokus jetzt auch auf Intels Larrabee gesetzt und die Optimierung der Berechnung der Sekundärstrahlen von Raytracing, also etwa zurückgeworfene Strahlen durch Spiegelungen oder Oberflächeneigenschaften sind derzeit Ziel von Pohls Forschungsarbeit.

Von Larrabee erhofft sich Pohl vor allem einen Flaschenhals loszuwerden, denn das Bild kann damit deutlich näher am Monitor berechnet werden - direkt auf der Grafikkarte statt auf den CPUs, die auf langen und schmalen Wegen das Bild zum Monitor bringen. Prinzipiell wäre es auch möglich, die Arbeit weiter aufzuteilen, also einige Teile durch Larrabee und andere wiederum durch die CPUs berechnen zu lassen.

Auch eine Kombination aus Rasterization und Raytracing wäre möglich. Kombinationen verschiedener Techniken gab es auch schon in der Vergangenheit, etwa bei Novalogics Delta Force, das Voxel-Grafik mit Polygonbasierter Grafik vermischte. So können die Vorteile verschiedener Techniken genutzt und Nachteile minimiert werden. Daniel Pohl hat bei einer Mischung verschiedener Techniken allerdings Vorbehalte(öffnet im neuen Fenster) .

Die größten Vorteile von Raytracing sieht Pohl im geringen Programmieraufwand, auch dank neuer Werkzeuge. Intel hat eine Raytracing Shading Language entwickelt, die grob auf HLSL(öffnet im neuen Fenster) aufbaut und um Raytracing erweitert wurde. Der Portaleffekt mit 250 Rekursionen ist etwa nicht mehr als eine Zeile Shadercode. Das Ergebnis ist dabei aus jeder Perspektive perfekt. Die Bildqualität kann außerdem effizient verbessert werden. soll mit Raytracing besonders gut funktionieren. Auch das richtige Sortieren von übereinanderliegenden Transparenzen stellt kein Problem dar. Gerade bei feinen Texturen, feiner Geometrie, Spiegelungen und Brechungen soll die Erhöhung der Bildqualität sehr einfach möglich sein. Übrigens auch bei kleinen Geräten. Dank der geringen Auflösung von mobilen Geräten wäre auch dort Raytracing laut Pohl eine Option.

Die Entwicklermeinungen zu dem Forschungsprojekt gehen weit auseinander. Einige sind recht angetan von den Fortschritten und den Möglichkeiten, andere halten von der Technik nicht viel. Sofern die Technik auf Larrabee umgesetzt wird, stellt sich das Problem, dass Spieleentwickler nicht davon ausgehen können, dass jeder Nutzer eine Larrabee-Grafikkarte besitzt. Einige ausgewählte Entwickler haben übrigens Zugriff auf ausführliche Daten und Bibliotheken des Projekts, wer das ist, wollte Intel aber nicht sagen.

Bevor Raytracing in Spielen eingesetzt werden kann, gilt es einige Hürden zu nehmen. Das betrifft nicht nur die nicht-abgeschlossene Optimierung, sondern neben der fehlenden Rechenleistung auf Endanwenderseite stellen auch die fehlenden Entwicklerwerkzeuge ein Problem dar, sagt Pohl. Sie sind alle noch zu sehr auf Rasterization optimiert.

Eine Schnittstelle von Intel für Raytracing existiert aber bereits, genauso wie einige Dokumentationen, die Intel zur vergangenen Siggraph fertiggestellt hat. Um für die Schnittstelle etwas zu schreiben, braucht der Programmierer nicht einmal Wissen rund um Multithreading oder die SSE-Erweiterungen. Spiele profitieren so ohne Probleme von den vielen Kernen zukünftiger Systeme. Übrigens auch von Hyperthreading. Zu Pentium-4-Zeiten war dies noch nicht so ausgeprägt, was auch an fehlender Optimierung lag. Mit der kommenden Nehalem-Generation soll es nochmals einen spürbaren Schub geben. Pohl wollte allerdings keine Zahlen nennen. Die kommen erst später.

Wer übrigens darauf hofft, dass Intel eine Demo veröffentlicht, muss noch warten. Pläne gibt es dafür nicht, weder für ein Spiel, noch für einen Benchmark. Im Moment sind die Projektdateien zudem etwa 30 GByte groß, das aufzubereiten dürfte nicht einfach sein. Dabei wäre der Raytracer ein gutes Benchmark-Programm für Mehrkernprozessoren. Schließlich skaliert Raytracing deutlich besser als die meisten Spiele, die derzeit auf SLI- oder Crossfire-Systemen laufen. Ob Larrabee eine Kopplung mit mehreren Karten erlaubt, wollte bei Intel übrigens keiner sagen. Aufgrund der Zielgruppe im High-End-Spielermarkt, ist das aber zumindest nicht ganz ausgeschlossen.


Relevante Themen