Wolfenstein Raytraced
Intels Raytracer kann jetzt Anti-Aliasing und HDR
Daniel Pohl von den Intel Labs hat seiner Raytracing-Engine für die Knights-Ferry-Karten neue Effekte beigebracht. Mit einer besonderen Form von Edge-Antialiasing ist jetzt auch Kantenglättung möglich.

Auf dem Intel Developer Forum in San Francisco hat der deutsche Grafikforscher Daniel Pohl die neue Version von Wolfenstein Raytraced gezeigt. Die Vorführungen liefen auf acht Knights-Ferry-Karten, die zusammen über 256 der kleinen x86-Kerne verfügen. Die früher unter dem Namen Larrabee bekannte Architektur wird von Intel nicht mehr als Grafikkarte, sondern als Rechenbeschleuniger weiterentwickelt.
Daher ist das sehr gut parallelisierbare Raytracing auch eine der Vorzeigeanwendungen dafür. Eine der Standardfunktionen moderner Raster-Engines, wie sie in Spielen fast ausschließlich verwendet werden, ist bei Raytracing aber besonders schwierig: das Anti-Aliasing zur Vermeidung von Treppeneffekten an harten Objektkanten.
Ein Raytracer setzt das Bild erst am Schluss der Berechnung zusammen, wobei Teile des Bildes zudem auf verschiedenen Kernen erzeugt werden. Es gibt dabei keinen Mechanismus, der dem Framebuffer einer Grafikkarte vergleichbar wäre - im Zusammenspiel mit dem Framebuffer filtern Raster-Engines und die Grafikkarten das Bild.
Also muss die Kantenglättung schon bei der Berechnung der einzelnen Bildteile im Raytracer vollzogen werden. Das würde aber für eine Glättung des gesamten Bildes oder aller Kanten den Bedarf an Rechenleistung in die Höhe treiben. Daniel Pohl filtert deshalb nur die Kanten, an denen die Effekte besonders störend sein könnten.
Anti-Aliasing durch Mesh-IDs
Dazu nutzt er die in der Wolfenstein-Engine schon vorhandenen Mesh-IDs von Objekten. In diesen Daten ist nicht nur gespeichert, welche Objekte in derselben Tiefenebene liegen. Die Meshes bestimmen auch, welche Objekte sich verdecken und wo ihre Kanten liegen. Befinden sich zwei Elemente in verschiedenen Meshes und stoßen sie aneinander, werden ihre Kanten gefiltert.
Die neue Engine kann diese Zusammenhänge auch durch Fehlfarben darstellen. Dabei werden die Objekte, die im selben Mesh liegen, durch eine Farbe gekennzeichnet. Nur wenn ein für den Betrachter sichtbares Mesh - in einer anderen Farbe - darüber liegt, kann das Aliasing besonders störend sein, und dann wird Anti-Aliasing angewandt.
Das klappt schon recht gut, gibt aber, besonders wenn zwei Objekte im selben Mesh aneinanderstoßen, teils Kantenflimmern. Wie Daniel Pohl im Gespräch mit Golem.de sagte, will er dieses Problem noch durch bessere Erkennungsalgorithmen lösen. Möglich sei mit noch mehr Knights-Ferry-Karten auch Full-Scene-Anti-Aliasing. Bisher ähnelt der Ansatz aber eher noch dem Edge-Anti-Aliasing, das moderne Grafikkarten schon beherrschen.
HDR und Depth of Field
Zwei weitere Effekte, die in Spielen schon eingesetzt werden, kann nun auch Intels Raytracer. Mit High-Dynamic-Range-Rendering (HDR) lässt sich der Kontrastumfang soweit erhöhen, dass es zu Überstrahlungseffekten kommt. Diese Nachbildung der Trägheit des menschlichen Sehapparates wird in Spielen vor allem beim Wechsel von dunklen in helle Szenen eingesetzt, kann aber auch in gleichmäßig ausgeleuchteten Umgebungen wie bei HDR-Fotografie für schönere Bilder sorgen.
Die zweite Neuerung ist Depth of Field, die Bestimmung der Schärfentiefe. Das ist mit Raytracing leichter möglich als mit Raster-Grafikkarten, weil die Engine am Verlauf der Strahlen schon die Entfernung des Fokuspunktes kennt. Grafikkarten verwenden dafür aufwendiges Post-Processing anhand des Framebuffers. Weitere Erklärungen finden sich auch in einem Blog-Eintrag von Daniel Pohl.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Wenn die Auflösung hoch genug ist, wird Kantenglättung dann nicht sowieso komplett...
...vorallem darin, dass man nicht allerhand schiefer Tricks braucht, um etwas realistisch...
Jain. Richtig umgesetztes HDR macht auch genau das gleiche in Spielen. Es wird mit einem...