GC 08: Larrabee und Quake Wars Ray Traced

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.
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.
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.
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.
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.
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.



