How Can I Optimize Real-Time Ray Tracing Performance for Complex Scenes?

Hi everyone,

I’ve been working on a project in Unreal Engine that uses real-time ray tracing to achieve high-quality lighting and reflections, and while the results are impressive, I’ve started running into performance bottlenecks as the scenes become more complex. Specifically, I’m noticing a significant drop in frame rates when enabling ray tracing features like reflections and global illumination in scenes with a lot of geometry and high detail.

I’ve tried adjusting settings like the number of ray tracing samples and reducing the quality of certain effects, but the performance hits are still quite noticeable. My current goal is to balance visual fidelity with real-time performance to ensure that the game runs smoothly on higher-end hardware while still looking great.

Here are the approaches I’ve already looked into:

  • Reducing the level of detail (LOD) for distant objects to lower the overall geometry complexity
  • Tweaking the ray tracing settings (e.g., reflection quality, global illumination bounce)
  • Using simpler lighting models where ray tracing isn’t necessary, and relying on baked lighting for static elements

Despite these efforts, I’m still facing issues with maintaining consistent frame rates. I’m wondering if there are any advanced techniques or best practices I might be missing for optimizing ray tracing in Unreal Engine, especially in more complex scenes with multiple light sources, reflective surfaces, and detailed environments.

If anyone has experience with real-time ray tracing in Unreal Engine and can share any strategies for improving performance without compromising visual quality, I’d really appreciate it!

Thank you!

The documentation actually has extremely good performance guides for this:

Also worth looking at the Lumen performance guide since it’s usually the primary user of hw raytracing: Lumen Performance Guide for Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community

Unless you’re using megalights/raytraced shadows my advice would be to uncheck “visible in raytracing” on the majority of small meshes, since their GI will most likely be picked up by Lumen’s screen traces and their surface cache will just be culled anyway. It’s a pretty easy performance win… but (likely) won’t work if you’re using Megalights/RT shadows since it will also remove their shadows.