Ray Tracing – What does it mean to you?
Unity’s ray tracing enables customers to create stunningly realistic real-time experiences using affordable hardware, unlocking new applications that were impractical just a few months ago.
At this point, nearly everyone with even a passing interest in real-time 3D graphics has seen the amazing video of a BMW M850i that we recently created in partnership with NVIDIA and Light & Shadows. The seamless blend between live-action video and ray traced rendering demonstrated in the demo is an incredible achievement. In a recent blog post, Dany Ayoub (3D Artist), Kate McFadden (Sr. Demo Artist), and Sebastien Lagarde (Graphics Lead) covered the technical aspects of ray tracing and how the demo was prepared. But there’s another side to the story – how ray tracing benefits customers. At Unity, we enjoy solving hard technical problems, but we’re even more passionate about enabling customer success. In this blog post, I’ll cover how you can put real-time ray tracing to work for you, and what to expect from Unity throughout 2019.
Real-time, affordable, high-fidelity – Pick three
The classic “iron triangle” decrees that every project has three objectives – fast, cheap and good – and that a customer needs to decide which two of these to prioritize. Ray tracing in Unity shatters that iron triangle by enabling stunningly realistic visualization at real-time frame rates using widely available and relatively inexpensive computing hardware. It’s this combination that represents the key breakthrough. Research into ray tracing stretches into the earliest years of computer graphics, and it has long been possible to generate ray-traced images “offline” on render farms, though not in real time. More recently, real-time ray tracing has been available to customers who can afford compute clusters with hundreds (or even thousands) of CPUs. While these earlier implementations of the technology produce compelling visuals, simple economics dictates that their practical use is limited to high-end production companies and corporate design studios.
With real-time ray tracing in Unity, the practical uses for this technology can now be extended to a much wider set of applications. What’s more, it’s simple to trade off performance and fidelity to precisely match the needs of each application. Do you have a need for ultimate visual quality? Increase the number of bounces calculated for each ray to more precisely calculate the behavior of light in a scene, yielding highly realistic appearance for transparent materials and for areas with complex shadows. At higher resolutions and bounce counts, frame rates may not be as smooth, but they will still be interactive, enabling you to quickly and efficiently tailor the composition, materials, lighting, and effects to create stills and videos without the delayed rendering of traditional processes. Do you need silky smooth frame rates? Then simply adjust resolution and bounce count to achieve your target frame rate.
Ready, aim, see
The most obvious application of affordable real-time ray tracing is to create individualized marketing experiences at scale. With Unity, it’s now feasible to deploy product configurators and other interactive experiences at retail locations, and ray tracing will extend the realism of these experiences even further. And while most consumers don’t yet own ray tracing capable hardware, it’s possible to stream content to consumer devices from a dedicated datacenter or the cloud.
The benefits of real-time ray tracing extend beyond consumer uses. Designers, engineers, architects and other professionals no longer need to schedule scarce time on a large-scale compute cluster or wait hours for a render farm. Using Unity, designers and engineers can better assess the impact of lighting, shadows, glare, and reflections on the visibility of displays and controls. Within Unity, it’s easy to adjust material properties including specularity (glossiness) to assess appearance under different lighting conditions. Architects can accomplish similar tasks when designing exteriors and interiors. The fact that this work can be done in real time using conventional desktop computers (or even appropriately equipped laptops) enables radically accelerated design iteration, and ultimately the creation of more refined designs.
The creation of entertainment content can also benefit from real-time ray tracing. Real-time rendering is increasingly being used for previz and look development work in the media industry, and incorporating the realism of real-time ray tracing has the potential to improve these processes.
Can I really do this?
In short, yes. Unity ray tracing is built on top of the High Definition Render Pipeline (HDRP) and an experimental version (Unity DXR) can be downloaded from GitHub today. There are certain constraints that are explained in the documentation, but the bottom line is that you can add ray tracing to an existing HDRP scene. You’ll need compatible NVIDIA RTX hardware and the appropriate version of Windows 10 – specific requirements are detailed in the GitHub README. The current experimental version is a great place to start to learn real-time ray tracing and evaluate how it can benefit your specific use cases, however, we recommend that you not use the experimental version for production work. We’re actively developing and constantly updating this technology, and plan to release it a Preview version in Fall 2019. Preview releases are generally suitable for starting new production projects, with the understanding that these packages are not fully validated, and some details are subject to change between Preview and Verified release.
We’re excited about making this technology available to the Unity community, but we’re even more excited to see what you do with it. We’d love to hear your ideas about how you can put ray tracing to work, and if you create projects that you’re able to share publicly, please let us and everyone else know. In the comment section below please share your ideas, hopes and dreams – and where to find your ray tracing demos. And to anticipate a question you are likely asking already, no we can’t share the BMW project. We do want to see what you do with your own models though!
Learn more about our solutions for the automotive and transportation industry here.