Real-time ray tracing is arguably the most significant development in graphics of the last few years. Its ability to mimic the physical behaviour of light is key to its ability to elevate 3D scenes to new heights of realism, making it hugely desirable for games and professional visualization applications.
Within the last 18 months, high-end, costly desktop graphics boards have become available to PC buyers, bringing hardware-accelerated ray tracing to the market, enabled by Microsoft’s DXR extension to its DirectX API with several gaming titles now offering support for ray tracing features. Traditionally, what arrives on PC eventually comes to console and mobile. However, such is the increasingly rapid pace of change in the industry the window of delay is shortening, and a video purporting to show software-based ray tracing using a custom game engine has already been shown on a popular handset.
However, upon close inspection, or in fact; even a perfunctory one, it has been noted that while labelled as ray tracing these demonstrations are not particularly convincing in terms of capturing the visual benefits that this technology is expected to bring. While there are character reflections, they are not complex as on a flat floor-surface they could easily be emulated perfectly by rendering the scene upside down. Equally, self-shadowing is noticeably absent, something that would come for “free” using genuine ray tracing techniques. In other words, the effects being shown are essentially showing none of the true complex interactions which are trivial when using genuine ray tracing.
Hence, rather than ray tracing, this demo could easily be showing just a different form of approximating these effects with their limitations hidden by carefully selecting a specific scene, just as screen-space reflections and ever more complex shadow techniques have done with traditional rasterisation hardware for many years.
Furthermore, it has been reported that this software ray tracing requires all the processing power available in the SoC and has a hard frame rate cap in order to achieve acceptable performance. As a hardware-based ray tracing solution Imagination’s ray tracing IP is more power-efficient. Our 2016 Wizard dev board was built on a 28nm process and drew only 10 watts while generating a peak rate of 300MRay/sec and performance per watt would only be aided by today’s smaller manufacturing processes.
Get the real thing
We at Imagination understand the benefits that true hardware-based ray tracing brings, having demonstrated our hybrid ray tracing IP on test silicon as far back as 2016.
The video below from January 2016 shows our PowerVR ray tracing IP running in real-time on hardware operating within mobile power envelopes, demonstrating true complex interactions within reflections (as in a puddle, reflecting a window that is itself reflecting a tree) using multiple rays bouncing to generate the realistic effects, and all in real-time at usable frame rates.
In the same video, we can also see dynamic ray traced shadows where all types of interaction “just work” as expected from ray tracing. Ray traced shadows offer the benefit over standard cascaded shadow maps of there being no limit to resolution while requiring less memory bandwidth as well while requiring no added effort on the part of the developer. With ray tracing, artists are truly free to create the world’s they imagine, without being restricted by the limitations inherent in the complex approximations and tricks commonly required by traditional rendering.
Additionally, as a hardware IP provider, we understand the value of conforming to industry standards. While DXR is used for PCs it’s not relevant for mobile applications. Our ray tracing prototype hardware used extensions to OpenGL® ES and we also developed extensions for Vulkan, all of this to ensure we can enable access to a wide eco-system where developers can focus on a single standard and not face many different custom proprietary APIs or even special software libraries.
In this post we talk about working with Vulkan to get our ray tracing solution working in the Unreal Engine 4 codebase, while in the below video we talk through a demo showing advanced, complex ray traced reflections, refractions and shadows working on complex curved surfaces in a scene created using the Unreal 4 engine.
This scene, designed to work on mobile hardware, shows much more sophisticated effects – genuine, hardware-based ray tracing created using standard APIs, rather than software-based solutions, that are not standards-based and are not providing genuine ray tracing effects.
Don’t be fooled
To reiterate, while some are showing games with effects that are touted as ray tracing, in fact, these could be recreated with simple rasterised techniques which are well known in the industry. Real ray tracing solves all complex object interaction problems, be it shadows, reflection or refractions. This avoids the limitations of approximations that may use ray tracing concepts but which do not deserve the name ray tracing, such as screen-space reflections. These ‘faux’ ray tracing demos could even risk giving ray tracing a bad name if artifacts or issues are ultimately discovered. If developers want to do better, they need access to real ray tracing hardware, based on standard APIs – this will, set artists free to create the world’s they imagine without needing to be concerned about the limits imposed by complex, but non-universal approximations.
Following the recent launch of A-Series, the fastest GPU IP in the market today, we have publicly said that ray tracing enabled GPU IP is on our roadmap with delivery in late 2020/early 2021 timeframe and we are already well advanced in our conversations with leading SoC designers about access to our patented IP ray tracing architecture under a range of different business models.
Once implemented into SoCs, this IP will provide developers with desktop-PC class hybrid ray tracing hardware that will deliver true ray tracing enhanced applications without having to resort to cheap tricks.