Räumliche und zeitliche Filter für Echtzeit-Raytracing

Warum?

Raytracing hat durch aktuelle Games, allen voran Cyberpunk 2077, (wieder) große Aufmerksamkeit bekommen. Aktuelle Hardware, allen voran NVidias RTX – Karten, ist in der Lage die grundlegenden Anforderungen abzudecken. Die Rechenleistung reicht aber nicht aus, um die erwartete visuelle Qualität zu erreichen, da zu wenige Samples gerechnet werden können und dadurch Aliasing-Effekte entstehen.

Wie kann man das lösen?

In den letzten Jahren gab es große Bemühungen in der Forschung dieses Problem durch Filter zu lösen, die entweder räumliche (Nachbarschafts-) Informationen des generierten Bildes oder zeitliche Informationen, also Informationen aus den vorangegangenen Frames, sowie Kombinationen aus beidem verwenden. Beispiele hierfür wären SVGF1, BMFR2 oder NVidias ReSTIR3. Die Autoren der genannten Arbeiten haben jeweils Code oder Codeteile auf verschiedensten Plattformen mit diversen Abhängigkeiten veröffentlicht. Ein systematischer Vergleich oder eine plattformunabhängige Lauffähigkeit ist nicht gegeben. Im Rahmen des Projektes ist ein Framework auf der Basis von Vulkan und VulkanRT entstanden, das es einfach ermöglicht Verfahren zu vergleichen oder auch zu kombinieren. Die aktuelle Implementierung wurde auf https://github.com/Realtime-RT-Filters/Realtime-RT-Filters veröffentlicht. Das untenstehende Bild zeigt einen Vergleich ohne Beispielfilter (linke Bildhälfte) und einem einfachen zeitlichen Filter (rechte Bildhälfte).

Echtzeit-Raytracing

Bild 1 von 1


Projektteam:
Ach, Maurice
Eder, Tobias
Heetel, Joseph
Potempa, Marvin
Salame, Ahmed
Strobl, Bernhard
Thiel, Maximilian

Betreuer: Prof. Dr. Bernd Dreier