Inside Unreal: DLSS and RTXGI with NVIDIA

Example:
no DDGI, regular DDGI, boosted DDGI x4

I want the example in this picture, can you give it to study?

I tried out RTXGI but I’m not able to make it work. The probes are all black in color. I followed the steps as mentioned in the installation document and also turned on RTX settings in Unreal like usual. For those who got it to work, please let me know if you have any idea why it’s doing that. Thanks!

I hope the volumetric lighting RT shadow fix made it into 4.26!

Hey guys, Richard Cowgill here. I work for Nvidia and gave the talk on these technologies. I can hopefully answer some of the questions.

First off on DLSS, yes this is the most difficult technology to acquire right now if you’re just wanting to mess around with it. We’re not going wide with DLSS just yet, but it is possible if you’re an indie with a project that is getting attention and looks good that you can get the required DLSS CMSID. At the moment, you can’t just be experimenting with ue4 in order to get it. We need a project that needs to be pretty far along in order to QA against. But if you do feel your project is worthy, please apply for it. Let me know directly, if you want and I’ll bring it to the right people’s attention.

Getting on the NVRTX branch and RTXGI is much easier and more open. NVRTX simply requires you to be on the development program, and RTXGI does require the application for it. If you’re still waiting, understand it can take 2-3 days. And if you applied over the weekend or just before, remember we just had Labor day weekend so some of the approvers may be coming back from their breaks and catching up.

On RTXGI, its true there’s no current way to pump up the value. This is addressed in the next release, there will be a global multiplier value. c_v1977 is right you can modify the code to do this yourself if you can’t wait. We started to realize there would be a need for this so we’re doing it in the next official update.

If anyone wants to reach me directly it’s rcowgill<at>nvidia.com. I’m open, I want to help you.

(post deleted by author)

Thank you for the info about DLSS. For RTXGI, is there some application to fill too? I just downloaded and built rtx-dlss-4.25.3 branch but I cannot find anything like RTXGI or DDGI volumes etc. Probably I’m not looking in the right place? Can you please explain how to setup it?

Yes for RTXGI you apply here and you’ll get the source. It is right now intended for mainline 4.25.3 but can be adapted to NVRTX with a bit of work. We’re working on making that easier for you if you’d rather wait. Right now it is not built into the NVRTX branch.

Yeah increasing the hysteresis value will make it more responsive to dynamics, but you’ll lose some stability. You can increase the rays, but that comes at a cost. It could be only small adjustments is what you need, and unless your light source is moving really fast I think it would be a nonissue most of the time.

Just being realistic about it, this is one of those tradeoffs we make to have something be dynamic, high framerate, high quality and realtime. This guy MartianDays https://twitter.com/MartianDays/status/1301614293452902401 did this with RTXGI and has pretty fast moving emissive lights. So it might work better than you’d expect, it just depends.

On the accuracy of emissive material colors, did you try switching from 10bit to 32bit color in the plugin preferences? Project settings -> RTXGI plugin. It will use 3x as much memory but give you more dynamic output (although this is probably affordable on any modern card anyway). It is true that RTXGI doesn’t have completely precise sampling, it works better with bigger/broader meshes.

(post deleted by author)

… still confuzzled … if you’ve been granted access to the github for RTXGI:

… otherwise:
I’m confuzzled by other official statements about what Engine “editions” the ‘plugin’ can be used with / installed on …
.
In this headline video (super stellar epic rad) Richard Cowgill (RTX Unreal Engine Evangelist, Nvidia) speaking with Victor Brodin (Community Manager, Epic) in this demonstration/discussion of RTXGI and (and DLSS 2.0, which is indicated as still not as readily available as RTXGI) …
… from https://www.youtube.com/watch?v=ZefvmV1pdP8&t=3908s the transcript https://epicgames.ent.box.com/s/q4vz…g2v8xo9obbtboo shows (and the audio seems to coordinate):
"You know, RTXGI is here.01:05:08.480 –> 01:05:09.560Anybody can get it.01:05:09.560 –> 01:05:11.590Just sign up for ourdevelopment program,01:05:11.590 –> 01:05:13.600and yougot accessto the source.01:05:13.600 –> 01:05:17.780And you can plug thatright into Unreal 4 and go.01:05:17.780 –> 01:05:19.265You don’t have tobe on our branch.01:05:19.265 –> 01:05:20.890You know, we’ve gota version that will01:05:20.890 –> 01:05:24.010work with the mainline Unreal."
.
Its greatest value is as a plugin to the Launcher edition.
.
Will such be a thing?
Is a Launcher-born Engine “edition” plugin in development?
.
Doesn’t the word “plugin” preclude the concept of “source” manipulation?

Unfortunately this sort of thing will never support *that *sort of GI in any really solid way, it’s essentially for mostly static scenes with a slowly changing time of day.

That being said UE5 offers, well at least atm, the sort of GI you’re looking for. A year from now, with lower performance. Welp, those are the tradeoffs

I’m already waiting 5 days for this RTXGI plugin …:frowning:

Hi, I also had to add a desaturation value because when you pump up the intensity the color bleed is too intense.
In ApplyLightingDeferred.usf:

avg = (irradiance.r + irradiance.g + irradiance.b ) / 3;
irradiance.rgb = (irradiance.rgb * (1 - DDGIVolume.IrradianceDesat)) + (avg * DDGIVolume.IrradianceDesat);
lightWeight.rgb = irradiance * albedo * DDGIVolume.IrradianceBoost;

I also have a question, why is RTXGI disabled when SSGI is enabled? Your screencast specifically mentions using both.

Which version did you compile to get RTXGI?
I am working on rtx-dlss-4.25.3 (NvRTX Merge branch ‘NGX-dev’ into rtx-dlss-4.25.3) but no sight of DDGI.
Only DLSS which is great btw. From 24 to 45 fps on camera 4 in “MegascansGoddessTemple” fullscreen is a huge step.

Ah that would be a mistake on my part. That was a bug that was resolved in the latest update, I must’ve forgot that wasn’t part of 1.0. So we have that fix ready for the 1.1 update. Sorry I can’t give a date on that yet, it will be soon.

I’m not sure I agree, since I didnt find there to be any difference in how complicated it was to get running with the RTXGI patched into the mainline 4.25.3 compared to patching it into the NVRTX branch.

I say that because RTXGI came in the form of two patch files, one for the main Epic 4.25.3 branch and one for the Nvidia NVRTX fork of unreal source code. And both versions required the downloading of UE4 code, the application of the appropriate patch, the compilation of the engine etc.

The available version is already 1.1!

Oh and in regards my previous comment about there being no difference in ease of setting up RTXGI with either mainline or NVRTX branch of UE4, there is one small reason why the NVRTX version might be harder, there is a mistake in the documentation provided!

There is a line in the RTXGI docs in the UE4 section which says this:

  • If using NvRTX, type git apply rtxgi-ue4.25.3.patch instead.

It should actually say:

If using NvRTX, type git apply rtxgi-nvrtx4.25.3.patch instead.

Can you pass that on for someone to fix it? Cheers.

IndirectLightRendering.cpp

comment out line 402, the ELSE statement before the block containing this comment
// call into the delegate to let people inject diffuse lighting if they’d like to

That will enable ssgi and rtxgi together

Ah thank you! I wasn’t up on the latest release and I made a bad assumption. So I guess 1.2 will address what I was talking about (or whatever the version number will be).

The documentation fix has been passed on. And I’m glad there’s plugin source for NVRTX too, I wasn’t sure if that was out yet.