Wie beeindruckend Raytracing sein kann, zeigt ausgerechnet «Quake 2»
HintergrundGaming

Wie beeindruckend Raytracing sein kann, zeigt ausgerechnet «Quake 2»

Philipp Rüegg
Philipp Rüegg
Zürich, am 01.02.2019

Wie viel Potential in Raytracing steckt, zeigt eine Gruppe deutscher Doktoranden. Sie haben die Lichteffekte im Kultshooter «Quake 2» mit Nvidias zukunftsweisender Technik in Echtzeit berechnet. Der Kopf des Projekts erklärt mir, wie er das geschafft hat und was es für künftige Games bedeutet.

«Quake 2» erschien vor fast 20 Jahren und war schon damals eine Augenweide. Was Christoph Schied aber nun aus dem Shooter rausgeholt hat, sieht selbst für heutige Verhältnisse erstaunlich aus. Mit Hilfe einiger Mitstudenten hat er sich Nvidias Raytracing-Technik zunutze gemacht und mit Q2VKPT eine Version des Spiels herausgebracht, die dynamische Lichteffekte in Echtzeit berechnet. Das Ergebnis ist kaum mehr mit dem Original zu vergleichen.

Q2VKPT ist die Abkürzung für «Quake 2», Vulkan, Path Tracing. Vulkan ist die Schnittstelle (API), welche den Einsatz von Raytracing überhaupt erst möglich macht. Path Tracing schliesslich bezeichnet den Algorithmus, der die Simulierung der Beleuchtung ermöglicht. Path Tracing wird auch in der Filmindustrie eingesetzt, beispielsweise bei Disney-Animationsfilmen. RTX-Karte vorausgesetzt, kannst du dir Q2VKPT hier herunterladen und ausprobieren.

Bild: brechpunkt.de
Bild: brechpunkt.de

Das Projekt entstand als Konzeptstudie am Karlsruher Institut für Technologie (KIT). Federführend ist Doktorand in Computergrafik Christoph Schied. Von ihm wollte ich wissen, wie Q2VKPT entstanden ist.

Wie kamst du oder ihr auf die Idee, Raytracing in «Quake 2» zu implementieren?
Christoph Schied, Doktorand: Ich forsche aktuell an Denoising-Verfahren für Monte-Carlo-Verfahren (z.B. Path Tracing). In der Grafikforschung ist es immer schwierig, passende Testszenen zu finden, die einerseits die richtige Schwierigkeit besitzen, gleichzeitig aber keinen riesigen Implementierungsaufwand mit sich bringen. Ich hatte für ein Paper, das sich mit Adaptiver Temporaler Filterung beschäftigt, eine Szene aus einer «Quake 1»-Mod benutzt, weil ich bewegte und flackernde Lichter haben wollte. Zur Evaluation der Technik habe ich einen Prototyp in einer Forschungsgrafikengine geschrieben, die leider keine Funktionalität enthält, das Projekt spielbar zu machen. Nachdem ich während dem Projekt so lange den fliegenden Raketen zugeschaut habe, wollte ich es irgendwann auch selber spielen.

Wieso gerade «Quake 2»? Die Quake Engines eignen sich für solche Modifikationen, da sie nach wie vor eine aktive Entwicklercommunity haben, Open Source sind und einen ziemlich schönen und aufgeräumten Code haben. Für ein Projekt wie Q2VKPT war der Aufwand, den Renderer neu zu schreiben, noch erträglich. Für modernere Spiele wird es zunehmend aufwändiger, da immer mehr Features unterstützt werden müssen. «Quake 2» hat ein deutlich stimmigeres Leveldesign bezüglich der Lichtquellen gegenüber «Quake 1», welches sich noch sehr stark auf manuell platzierte Punktlichtquellen verlässt.

Wie schwierig war der Prozess? Es war sehr aufwändig. Die Renderingtechniken sind auf aktuellstem Stand der Forschung und wurden so in noch keinem Spiel vorher gezeigt. Das hat natürlich viele neue Herausforderungen mit sich gebracht, die ich vorher so noch nicht bedacht hatte, was dann auch gleich neue Forschungsprojekte hervorgebracht hat. Dazu kommt natürlich, dass die «Quake 2» Engine für ganz andere Renderingverfahren konzipiert war. Das heisst, ich musste alles von Grund auf neu auslegen. Derzeit sind Nvidias RT Cores nur mit den Low-Level-Schnittstellen DXR und Vulkan zugänglich, was den Aufwand nochmal deutlich erhöht hat.

Bild: brechpunkt.de
Bild: brechpunkt.de

Die Hardwareanforderungen deiner «Quake 2»-Version haben es im Vergleich zum Original in sich. Liegt das an der mangelnden Reife von Raytracing oder der Optimierung von Q2VKPT? Path tracing ist ein sehr aufwändiges Verfahren, das bisher nur in Offline-Verfahren benutzt wurde. Die ursprüngliche Version hatte nur primitive dynamische Effekte, die aufwändigere Simulation des Lichttransports wurde aufwändig vorberechnet und in einer Textur gespeichert. Q2VKPT berechnet hingegen für jedes Bild dynamisch die Beleuchtung neu, was natürlich deutlich höhere Hardwareanforderungen zur Folge hat.

Welche älteren Spiele eignen sich besonders gut – respektive besonders schlecht – für das nachträgliche Implementieren von Raytracing? Am besten eignen sich Spiele, die bereits eine sinnvolle und realistische Beleuchtung benutzen, also sinnvoll platzierte Lichtquellen haben. Andernfalls müsste man die Level der Spiele anpassen. Auch «Quake 2» ist in der Hinsicht nicht optimal, da «Quake 2» einige Punktlichtquellen benutzt, die vom Leveldesign her keinen Sinn machen. Sie sind aber notwendig, um indirekte Beleuchtung zu suggerieren. Diese werden von Q2VKPT ignoriert, weshalb die Level teilweise ziemlich dunkel sind.

Eine weitere grosse Schwierigkeit ist, dass alte Spiele den Oberflächen keine physikalisch sinnvollen Eigenschaften zuweisen, welche für eine korrekte Simulation der Ausbreitung von Licht notwendig sind. Das war auch bei «Quake 2» ein echtes Problem, weshalb wir auf einige Hacks zurückgreifen mussten.

Q2VKPT hat eindrücklich gezeigt, zu was RT fähig ist. Wie schätzt du den weiteren Verlauf der Technik in Games ein? Wie schnell werden sich Entwickler dieser Technik bemächtigen? Ich fürchte, dass es noch eine Weile dauern wird, bis Path Tracing wirklich bei Spielen ankommen wird. Der Übergang ist schwierig, da Spiele für Path Tracing komplett anders ausgelegt werden müssen und somit nicht mehr so einfach auf alter Hardware lauffähig sind. Es gibt auch noch einige Forschungsfragen zu beantworten, bevor Path Tracing wirklich robust auf modernen Spiele-Assets möglich sein wird.

Bild: brechpunkt.de
Bild: brechpunkt.de

Ich hoffe allerdings, dass wir in naher Zukunft zunehmend bessere Schatten in Spielen sehen werden. Der Wechsel von Shadowmaps zu stochastisch ausgewählten Flächenlichtquellen erlaubt es endlich, korrekte weiche Schatten für sämtliche Lichter zu berechnen. Das allein würde bereits einen riesigen Schritt nach vorne in der Grafikqualität bedeuten.

31 Personen gefällt dieser Artikel


Philipp Rüegg
Philipp Rüegg

Senior Editor, Zürich

Als Game- und Gadget-Verrückter fühl ich mich bei digitec und Galaxus wie im Schlaraffenland – leider ist nichts umsonst. Wenn ich nicht gerade à la Tim Taylor an meinem PC rumschraube, oder in meinem privaten Podcast über Games quatsche, schwinge ich mich gerne auf meinen vollgefederten Drahtesel und such mir ein paar schöne Trails. Mein kulturelles Bedürfnis stille ich mit Gerstensaft und tiefsinnigen Unterhaltungen beim Besuch der meist frustrierenden Spiele des FC Winterthur.

Diese Beiträge könnten dich auch interessieren