RTXGI and RTXDI

First of all, my thanks and gratitude for all NVIDIA has done over the years. I appreciate it.

I am looking for ways to keep up with the NVIDIA codebase. Normally, I study what NVIDIA has done, then I incorporate the technology into my own code. For example, the PhysX engine:


It is work but it is enjoyable. Working for myself can be a challenge though. Now I am trying to incorporate RTXGI and RTXDI. Project-wise they are completely different. RTXGI appears to use nearly more to the point code, while RTXDI has a much more elaborate and elegant codebase. Maybe I can start with the RTXDI codebase and fold in other aspects of NVIDIA tech as needed.

As noted on an issue in the repo ([Question] About the rtxdi-sample · Issue #9 · NVIDIAGameWorks/RTXDI · GitHub), the scene glistening. It may be that we (users) do not have the denoiser mentioned in Alexey’s last slide. Is that the case?

Before reaching the end of his slides, I was reading along, going through the RTXDI code, mainly searching based on a few keywords he mentioned, and taking note of them, popping up the source files in Visual Studio.
RTXDINotes.txt (4.0 KB)

Once I got to the last slide, that kicked me off to look at the NRD libraries:

The RayTracingDenoiser ReadMe directs me to the second link. I am not sure which one I should integrate into the RTXDI project. Are they the same? Will this fix the issue seen in the video?

Also, incorporating the denoiser does not appear to be straight forward. But I am studying that now on the RayTracingDenoiser ReadMe. Is the correct location to look at?

Thank you in advance for your help.

Hello @Jerry.Richards and welcome to the NVIDIA developer forums!

Thank you very much for the kind words! That’s what people at NVIDIA enjoy most, enabling developers to create cool content.

Regarding NRD I would suggest you start with the standalone Sample to understand the basics of NRD and how to use it. Then in a second step go to integrating it into your own code. Doing that has proven to be challenging on occasion.

When you are talking about

It may be that we (users) do not have the denoiser mentioned in Alexey’s last slide.

What slide set do you mean? Do you have a link? Maybe I can try and reach out to Alexey in case he is working here at NVIDIA.

Thanks again for your interest in our SDKs!

Thank you Markus. I will give that a try. As for the slides:

1 Like

The NRDSample is failing to build. I am working that now. These comments really belong on a board/medium where immediate help can be given. My comments from Discord are recorded here for completeness sake:

The naming of the Deploy batch file is a little confusing. Am I deploying something? Why not GenerateProjects as has been done in other projects. Personally, I appreciate being able to easy and quickly setup projects and test out features. It is tough to do when the setup tools themselves are throwing curve balls at us. It isn’t that I cannot do so, take the time to investigate why things are not working, it is I have limited time and would prefer to focus on what I am trying to study.

Deploy actually generates the Visual Studio solution:
E:\Repos\NVIDIA\NRDSample>1-Deploy
– Building for: Visual Studio 17 2022
– The CXX compiler identification is MSVC 19.34.31937.0
– Detecting CXX compiler ABI info

– Configuring done
– Generating done
– Build files have been written to: E:/Repos/NVIDIA/NRDSample/_Compiler

physx, and flow use generate_projects.bat
blast uses something entirely differently.
The RTXDI used cmake-gui which was quite nice :D

Once I am done figuring out what went wrong with the VS build, I will report to GitHub\Issues.

The build of the NRDSample is encountering an error:

4>CUSTOMBUILD : error : store value of type ‘RayQuery<RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES | RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH>’ is unsupported

I am able build individual projects: NRD, NRD_Shaders, NRI, NRI_D3D11, NRI_D3D12, NRI_Shared, NRI_Validation, NRI_VK, Detex, ImGui, NRI_Framework. Also, I can compile the NRDSample_Shaders separately. But the project is not building.

The 1-Deploy.bat file is rather simple and can be used to create the solution at the command line:

git submodule update --init --recursive
mkdir “_Compiler”
cd “_Compiler”
cmake … -A x64

The cmake generated Visual Studio solution does contain artifacts that prevent the NRDSample_Shaders from building that I had to delete.

What I don’t know is how to tell cmake or other tool to use D3D12 (*.DXIL) output files and compile the shaders using DXC. So, I most likely hacked my way to a successful build by modifying the ShaderCompilation.cmake file:
ShaderCompilation.cmake (7.3 KB)

Basically, I removed references to FXC and *.dxbc files.

The denoiser (NRD) is already a part of the RTXDI application. And it is set to the right type. But from this link you can see the image constantly sparkling:

External Media

The RTXDI denoiser integration code (NrdIntegration.h/cpp ) is quite a bit different than the NRDSample. I have not looked at the commit dates, but RTXDI appears older (2020-2021) compared to the NRDSampe (2022).

I am going to try and replace RTXDI version with the NRDSample. . .

1 Like