Quake 2 Gets Real-Time Path Tracing Powered By NVIDIA RTX / VK_NV_ray_tracing
For those Linux gamers with a NVIDIA RTX "Turing" graphics card, there's finally an interesting open-source workload to enjoy that makes use of the RTX hardware and NVIDIA's VK_NV_ray_tracing extension... A real-time path tracing port of the legendary Quake 2 game.
While Quake II recently saw a Vulkan port, university students have now done an "RTX" port for Quake 2 with the new Q2VKPT project.
Q2VKPT is a fully path-traced game making use of RTX ray-tracing cores of NVIDIA's latest graphics processors.
This project is a proof-of-concept for the game industry and the computer graphics research community, giving enthusiasts a glimpse into the future of game graphics. It is unique in that it is the first to fully rely on path tracing, which was previously only possible in movie production on big server machines. Path tracing requires large sample counts to converge to noise-free images. Q2VKPT makes use of modern GPU acceleration for raytracing to accelerate the path tracer. Nevertheless the computational cost for its path tracer stays very high, using between 75 to 80% of the computational budget for a single sample, making noise-free renderings prohibitively expensive. Q2VKPT mainly gains its efficiency from an adaptive image filtering technique that efficiently removes the noise. The filter intelligently tracks changes in the scene illumination to re-use as much information as possible from previous computations (see tech section).
Q2VKPT was created by Christoph Schied to validate the results of his computer graphics research in an actual game. The project is released as open source on GitHub, integrating our Vulkan path tracer into the Q2PRO client. The project was spawned by the need for fast-paced test content that is lacking in academic research. The project currently encompasses 11K lines of code and completely replaces the original Quake II graphics code. Q2VKPT was mainly developed on Linux and comes with full Linux support.
Learn more about Q2VKPT at the project site and GitHub. The Quake II source based game is supported on both Windows and Linux but an RTX graphics card supporting VK_NV_ray_tracing is obviously required.
Aside from some basic code samples, this is the first serious use of VK_NV_ray_tracing that I have seen for Linux since that Vulkan ray-tracing extension was introduced by NVIDIA following their GeForce RTX 2000 series introduction. I'll be compiling Q2VKPT this weekend and giving it a whirl with the RTX 2060/2070/2080 hardware.