• Stars
    star
    356
  • Rank 119,446 (Top 3 %)
  • Language
    C++
  • License
    Other
  • Created over 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RTXDI SDK and Sample Applications

Version 2.0.0.

Change Log

Introduction

RTX Direct Illumination is a framework that facilitates the implementations of efficient direct light sampling in real-time renderers. It is based on the ReSTIR algorithm published in the paper called "Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting" by B. Bitterli et al.

Starting with version 2.0, RTXDI also includes ReSTIR GI functionality, which allows applications to apply importance resampling to indirect illumination rendered using path tracing. For more information about the indirect illumination algorithm, see the paper called "ReSTIR GI: Path Resampling for Real-Time Path Tracing" by Y. Ouyang et al. The feature is described in more detail in this document.

For more information about RTXDI, see the NVIDIA Developer Page.

Package Contents

rtxdi-sdk contains the SDK source code files that are meant to be included into the application build:

src contains the sample application host code.

shaders contains the sample application shaders.

donut is a submodule structure with the "Donut" rendering framework used to build the sample apps.

NRD is a submodule with the "NRD" denoiser library.

DLSS is a submodule with the Deep Learning Super-Sampling SDK.

Additional contents delivered through packman:

dxc is a recent version of DirectX Shader Compiler;

media contains the media files necessary for the sample apps to run.

Building and Running the Sample Apps

Windows

  1. Clone the repository with all submodules:

    • git clone --recursive https://github.com/NVIDIAGameWorks/RTXDI.git

    If the clone was made non-recursively and the submodules are missing, clone them separately:

    • git submodule update --init --recursive
  2. Pull the media files and DXC binaries from packman:

    • update_dependencies.bat
  3. Configure the solution with CMake. The easiest option is to use CMake GUI.

  4. Assuming that the RTXDI SDK tree is located in D:\RTXDI, set the following parameters in the GUI:

    • "Where is the source code" to D:\RTXDI
    • "Where to build the binaries" to D:\RTXDI\build
  5. Click "Configure", set "Generator" to the Visual Studio you're using (tested with VS 2019 version 16.8.2), set "Optional platform" to x64, click "Finish".

  6. Click "Generate", then "Open Project".

  7. Build the solution with Visual Studio

  8. Run the rtxdi-sample or minimal-sample projects.

Linux

  1. Make sure the necessary build packages are installed on the target system. For Ubuntu 20.04 (amd64), the following command is sufficient:

    • sudo apt install build-essential cmake xorg-dev libtinfo5
  2. Clone the repository with all submodules:

    • git clone --recursive https://github.com/NVIDIAGameWorks/RTXDI.git

    If the clone was made non-recursively and the submodules are missing, clone them separately:

    • git submodule update --init --recursive
  3. Pull the media files and DXC binaries from packman:

    • cd RTXDI && ./update_dependencies.sh
  4. Create a build folder:

    • mkdir build && cd build
  5. Configure the project with CMake:

    • cmake ..
  6. Build:

    • make -j8 (example for an 8-core CPU, or use Ninja instead)
  7. Run:

    • bin/rtxdi-sample or bin/minimal-sample

Vulkan support

The RTXDI sample applications can run using D3D12 or Vulkan, which is achieved through the NVRHI rendering API abstraction layer and HLSL shader compilation to SPIR-V through DXC (DirectX Shader Compiler). We deliver a compatible version of DXC through packman. If you wish to use a different (e.g. newer) version of DXC, it can be obtained from Microsoft/DirectXShaderCompiler on GitHub. The path to a custom version of DXC can be configured using the DXC_PATH and DXC_SPIRV_PATH CMake variables.

By default, the sample apps will run using D3D12 on Windows. To start them in Vulkan mode, add --vk to the command line. To compile the sample apps without Vulkan support, set the CMake variable DONUT_WITH_VULKAN to OFF and re-generate the project.

Integration

See the Integration Guide.

More Repositories

1

kaolin

A PyTorch Library for Accelerating 3D Deep Learning Research
Python
4,452
star
2

PhysX

NVIDIA PhysX SDK
C++
2,893
star
3

Falcor

Real-Time Rendering Framework
C++
2,615
star
4

PhysX-3.4

NVIDIA PhysX SDK 3.4
C++
2,307
star
5

kaolin-wisp

NVIDIA Kaolin Wisp is a PyTorch library powered by NVIDIA Kaolin Core to work with neural fields (including NeRFs, NGLOD, instant-ngp and VQAD).
Python
1,450
star
6

rtx-remix

Combined repo for the RTX-Remix runtime
1,369
star
7

DxrTutorials

C++
834
star
8

RTXGI-DDGI

RTX Global Illumination (RTXGI)
C++
689
star
9

RTX-Path-Tracing

Real-time path tracing library and sample
C++
624
star
10

GettingStartedWithRTXRayTracing

Getting Started with RTX Ray Tracing
C++
613
star
11

FleX

C++
579
star
12

nvrhi

C++
525
star
13

RayTracingDenoiser

NVIDIA Ray Tracing Denoiser
HLSL
512
star
14

FaceWorks

A middleware library and sample application for high-quality skin and eye rendering
C++
450
star
15

NVIDIAImageScaling

NVIDIA Image Scaling SDK
C
426
star
16

Streamline

Streamline Integration Framework
C
400
star
17

Blast

A modular destruction SDK designed for performance and flexibility, replacing APEX destruction
C++
331
star
18

dxvk-remix

C++
307
star
19

NvCloth

C
296
star
20

KickstartRT

KickstartRT SDK
C++
185
star
21

Flow

Flow is a sparse grid-based fluid simulation library for real-time applications.
C
168
star
22

donut

C++
164
star
23

HBAOPlus

HBAO+
C++
160
star
24

bridge-remix

This is the NVIDIA RTX Remix Runtime Bridge repository
C++
146
star
25

Displacement-MicroMap-Toolkit

C++
130
star
26

SpatiotemporalBlueNoiseSDK

C
127
star
27

UnityPhysXPlugin

Experimental Unity package to enable access to NVIDIA PhysX SDK 4 from within Unity.
C#
122
star
28

NRI

C++
90
star
29

RTXMU

C++
89
star
30

ShaderMake

Shader Compilation Tool
C++
78
star
31

donut_examples

C++
72
star
32

NRDSample

C++
69
star
33

GeForceNOW-SDK

This is the home of the SDK for GeForce NOW
C
65
star
34

KickstartRT_demo

Repo for KickstartRT demo application
C++
50
star
35

Opacity-MicroMap-SDK

Opacity Micro-Map SDK Source Repository
C++
36
star
36

MathLib

C++
28
star
37

Displacement-MicroMap-SDK

C++
19
star
38

Streamline_Sample

C++
17
star
39

nas-sample

C++
16
star
40

ComfyUI-RTX-Remix

ComfyUI RTX Remix
Python
14
star
41

Opacity-MicroMap-Samples

Samples repository for the Opacity MicroMap SDK
C++
11
star
42

Displacement-MicroMap-BaryFile

C++
11
star
43

NRIFramework

C
8
star
44

NRISamples

C++
7
star
45

rtxdi-runtime

HLSL
2
star