id Software’s Quake II launched in 1997, bringing gamers a new single-player campaign, a long-awaited, addictive multiplayer mode that we played for years on pitifully-slow 56K modems, and a jaw-dropping engine that supported 3DFX GPU acceleration out of the box. Colored lighting, dynamic visual effects, and much more, all running at a glorious 640x480, or perhaps 800x600 if you had top-of-the-line hardware.
Fast forward to 2001, when id Software made the Quake II engine open source, enabling anyone to legally release total conversions with complete engine overhauls. Ever since, fans have beavered away on their own personal projects, the latest of which is Q2VKPT.
Released in January, Q2VKPT was created by former NVIDIA intern Christoph Schied, a Ph.D. student at the Karlsruhe Institute of Technology in Germany. The “PT” in its name stands for Path Tracing, a compute-intensive ray tracing technique that unifies all lighting effects (shadows, reflections, et cetera) into a single ‘pure ray tracing algorithm’. With Ray Tracing being all the rage, word of a developer making a beautiful, real-time ray-traced version of Quake II made headlines around the world.
But path tracing has a downside: its random sampling algorithm introduces ‘noise’ that makes gameplay appear grainy and speckled, as seen in 2016’s Q2PT. To solve the problem, Christoph and his university colleagues built upon ideas originally conceived in 2016 during his NVIDIA internship, when he co-invented a fast way to remove said graininess by combining the results of multiple game frames, in a manner similar to that used by Temporal Anti-Aliasing.
As Christoph states on his site, Q2VKPT is the basis for future research, and a platform for more ray tracing goodness. So, we reached out shortly after Q2VKPT’s release to ask if our own ray tracing experts, many of whom he worked with previously, could develop enhancements and major additions. He said yes, and this week NVIDIA is presenting the newly-created Quake II RTX together with Christoph at GDC 2019.
Running on a Vulkan renderer, with support for Linux, Quake II RTX is a pure ray-traced game. That means all lighting, reflections, shadows and VFX are ray-traced, with no traditional effects or techniques utilized.
“But what’s new with Quake II RTX compared to Q2VKPT?”, you ask. A lot. We’ve introduced real-time, controllable time of day lighting, with accurate sunlight and indirect illumination; refraction on water and glass; emissive, reflective and transparent surfaces; normal and roughness maps for added surface detail; particle and laser effects for weapons; procedural environment maps featuring mountains, sky and clouds, which are updated when the time of day is changed; a flare gun for illuminating dark corners where enemies lurk; an improved denoiser; SLI support (hands-up if you rolled with Voodoo 2 SLI back in the day); Quake 2 XP high-detail weapons, models and textures; optional NVIDIA Flow fire, smoke and particle effects, and much more!
To see more before and after comparisons, click on the screenshots below.
Looking at the screenshots above and below, you’ll see physically-based materials with reflections; refraction, emissive textures, hard and soft shadows; indirect diffuse lighting; dynamic effect lighting; dynamic weapon effects; and real-time controllable time of day. All running in real-time for the first time on a GeForce RTX graphics card.
What’s more, Quake II RTX is running with NVIDIA VKRay (also known as VK_NV_ray_tracing), a Vulkan extension that allows any developer using Vulkan to add ray tracing effects to their games. VKRay supports all the goodies seen here and in RTX ray-traced titles, and is game ready for Vulkan releases on Linux and other supported Vulkan platforms. To get started with NVIDIA VKRay, head to our developer site for tutorials, code samples, and more.