NVIDIA DLSS for Unreal EngineWritten on February 17, 2021 by Kelly Shipman
When NVIDIA introduced the first RTX video cards, one of the key features was their new Deep Learning Super Sampling or DLSS. Up until now, to get access to DLSS in Unreal Engine, you needed to get approval from NVIDIA and download a custom branch of Unreal that had DLSS enabled. Even then, the DLSS features would only show in a packaged product, as in a game, not in the editor. Now, NVIDIA has released DLSS as a free, publicly available plugin for Unreal Engine. So far, it has been working beautifully.
What is DLSS?
There is a lot of complicated technology behind this, but in a nutshell, NVIDIA trained an AI to upscale an image in real-time. This AI model runs on the Tensor Cores available on all RTX video cards, and allows a game to render at a lower resolution than the display resolution, and then intelligently upscale that image with minimal impact to the visual quality. The upside to this is that instead of attempting to render a 4k image 60 times a second, it could only render a 1440p or even 1080p, and then upscale the results. Because the number of pixels being rendered has a dramatic impact on the frame rate, dropping the number of pixels then means more frames can be rendered every second. DLSS promises to do that with a minimal visual difference.
The first iteration of DLSS wasn’t too impressive. However, as is the case with AI trained models, it has gotten better over time. The more images NVIDIA throws at the model, the better and better it will get. It is to the point now (with DLSS 2.0) where many gamers view DLSS as a bigger selling point for the RTX video cards than Ray Tracing, or at least that Ray Tracing without DLSS doesn’t provide a good experience.
If you want more details, you can read NVIDIA DLSS 2.0: A Big Leap In AI Rendering
Getting the DLSS plugin to work in Unreal Engine
To get the DLSS plugin you will have to download it from NVIDIA’s website. There is a listing for it in the Unreal Marketplace, but it will just link you to Nvidia’s website. As such, it does take a little more work than a standard plugin, but the documentation has a good step-by-step walkthrough to get it up and running. A couple of things to note, it does require Unreal Engine 4.26 or 4.26.1 so you’ll need to update your projects if you haven’t already. Also, it requires the latest NVIDIA driver, which at the time of writing is 461.40.
Once the plugin is installed and enabled, a new DLSS option will appear in the viewport dropdown menu. This allows you to set the quality of the viewport itself. Having DLSS available in the viewport is a huge bonus to almost any workflow. Even if your end goal is to have a very high-end machine render a movie sequence, or drive a large LED wall for Virtual Production, and not use DLSS, the artist machines, which may have lower specs, will still be able to achieve solid frame rates. If you have an RTX enabled laptop that is barely keeping up with a large scene, DLSS may be able to give you enough lift to keep it workable.
The DLSS performance settings are different from the viewport and the Playback window, or if you package the project and run it outside of the editor. The included documentation includes console commands and blueprint instructions so you can set up your project however you like. By default, it runs in “Performance” mode, so take some time to see what sort of visual differences the different modes take and if they’ll be acceptable to your exact project.
It is worth noting that this only applies to real-time rendering. DLSS is does not work with the Movie Render Queue, so it will not help speed up those renders.
To test DLSS, I used two of the free Megascans projects from the Unreal Marketplace. Specifically the Abandoned Apartment and Goddess Temple. Both of these projects are pretty demanding, especially at 4K. I recorded the FPS at 1080p, 1440p, and 4k by selecting Play > New Editor Window. You’ll see similar performance improvements in the regular viewport window. These were run on a Ryzen 9 5950X with an Nvidia 3090 and 64GB of RAM. The DLSS mode was left at its default “Performance” setting.
As you can see, there are dramatic performance gains at any resolution. The Apartment scene in 4k nearly tripled the FPS by enabling DLSS. Even the lowest improvement I saw was a 36% increase in FPS. That is still very impressive for a free plugin. Obviously, the benefit will vary from scene to scene, and your targeted resolution.
So how do the different quality settings differ? Looking at the Apartment scene, at 4k, here are the FPS differences.
You’ll notice that “Ultra Quality” has the same performance as “Balanced.” According to the documentation, “Note: Not all modes might be supported at runtime, in this case, Balanced mode is used.” This may change, but for right now that option doesn’t seem to be working.
Visual quality does take a minor hit, especially at “Ultra Performance”. How much of a hit will depend on your specific project. Because this is rendering at a lower resolution and then upscaling, fine lines will see the most noticeable impact, and will probably want to run in the Quality setting. However, if you are running a LED wall, that isn’t highly detailed or in focus, you might be able to use a more aggressive Performance mode. The included documentation includes lots of details to tweak various image quality settings. You’ll be able to dial in the right settings for your needs. Also check this blog post from NVIDIA: Tips: Getting the Most out of the DLSS Unreal Engine 4 Plugin
NVIDIA’s DLSS has long promised better frame rates while maintaining near identical image quality. Over the past couple of years, it has slowly improved and given gamers just that. Now it's finally available to the rest of the Unreal community and users in Virtual Production, Architectural Visualization, Engineering, and so on are able to apply it to their projects as well. Since it is a free plugin, and pretty easy to get working, I highly recommend anyone give it a try, especially if you are really pushing your video card to the max. It's not often that a video card manufacturer offers a free performance upgrade.
Unreal Engine Workstations
Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.