Many would not argue that the holy grail of graphics rendering is real-time ray tracing, and there are industry-wide efforts to make that a reality. Real-time ray tracing is computationally demanding, though, which is why today's solutions only ray trace parts of a scene, and not the entire thing. This also requires specialized hardware, or so it was always assumed. Interestingly, though, Crytek has released a demo showcasing a method of ray tracing being done on a Radeon RX Vega 56.
This is notable because AMD's Vega GPU architecture does not contain any special hardware to handle the demands of real-time ray tracing, unlike NVIDIA's Turing GPU architecture, which optionally includes dedicated RT cores (found in GeForce RTX cards). Of course, it's pretty much always been technically possible to process ray traced visuals on standard graphics cards, it's just not feasible to expect real-time ray tracing on today's hardware, in playable form.
That may change. Crytek's new Neon Noir shows how real-time mesh ray traced reflections and refractions can beautify a scene with realistic visuals. The developer created it with the new advanced version of CryEngine's Total Illumination, which is a feature that is coming to CryEngine later this year. Here's a look at the demo...
It's worth watching more than once to really absorb what you are seeing. As the drone descends into the streets, notice the landscape being lit up by neon lights and the reflections in the windows as it passes by. It is an impressive display, particularly since it was generally assumed that this level of reflective fidelity could only be done on a GeForce RTX card without having things slow to a crawl.
"Neon Noir was developed on a bespoke version of CryEngine 5.5., and the experimental ray tracing feature based on CryEngine's Total Illumination used to create the demo is both API and hardware agnostic, enabling ray tracing to run on most mainstream, contemporary AMD and NVIDIA GPUs. However, the future integration of this new CryEngine technology will be optimized to benefit from performance enhancements delivered by the latest generation of graphics cards and supported APIs like Vulkan and DX12," Crytek explains.
So, how is it possible to achieve real-time ray tracing on a Radeon RX Vega 56, while maintaining what appears to be smooth and playable framerates? Crytek says its tool "simplifies and automates the rendering and content process," allowing for animated objects and lighting changes to be correctly reflected in real time.
"This eliminates the known limitation of pre-baked cube maps and local screen space reflections when creating smooth surfaces like mirrors, and allows developers to create more realistic, consistent scenes. To showcase the benefits of real time ray tracing, screen space reflections were not used in this demo," CryTek says.
I read that to mean it is rendering less of the scene with real-time ray tracing than what you might get with RTX (which also only renders part of a scene with real-time ray tracing, while using rasterization techniques for the rest). Crytek is not offering a deep dive into the technology, though.
Over on Reddit, there's a discussion that points out how this is essentially a voxel-based method for global illumination. The short of it is, rendering voxels requires less horsepower than vertexes/triangles/polygons.
AMD is likely to implement dedicated ray-traced hardware into its future GPUs (post-Navi) anyway, but techniques like this one could certainly accelerate the adoption in games, and interest by consumers.