CDXR

CDXR

A hybrid rasterization-raytracing renderer based on DirectX 12, DirectX Raytracing, and NVIDIA’s Falcor.

CDXR is my real-time toy renderer. Based on the Falcor framework and the DirectX Raytracing API and following Chris Wyman’s SIGGRAPH courses and the Raytracing Gems series, CDXR implements a hybrid rasterization-raytracing configurable pipeline.

Check out the source code on Github.

Features

  • One-bounce diffuse global illumination.
  • Deferred rendering via G-Buffer.
  • Ray-traced ambient occlusion.
  • Denoising and antialiasing via temporal accumulation and camera jittering.
  • Thin lens camera and depth of field.
  • Tone mapping.
  • Lambertian diffuse reflection and microfacet reflection models.
  • Unidirectional path tracing.
  • Ashikhmin-Shirley BRDF.

Select images

01/13/2023 Unidirectional path tracing, Ashikhmin-Shirley BRDF. Assets by NVIDIA.

The Ashikhmin-Shirley BRDF models surfaces that have a diffuse substrate and a glossy coat. To sample it, its diffuse and specular terms are chosen with 0.5 probability each. When the diffuse term is chosen, the incident direction \(\omega_i\) is sampled using a cosine-weighted distribution; when the specular term is chosen instead, \(\omega_i\) is sampled using a microfacet distribution (I chose Trowbridge-Reitz because that’s what PBRT uses for its substrate material).

01/09/2023 Unidirectional path tracing, combined Lambertian and specular BRDFs, and visibility testing. Assets by NVIDIA.

09/28/2022 Direct lighting on a microfacet reflection model. Assets by NVIDIA.

09/28/2022 Direct lighting on a microfacet reflection model. Assets by NVIDIA.

09/28/2022 Direct lighting on a pure Lambertian reflection model. Assets by NVIDIA.

07/06/2022 1-bounce GI and hard shadows. Assets by NVIDIA.

05/13/2022 Occlusion testing with shadow rays, with and without depth of field. Assets by NVIDIA.

05/13/2022 Lambertian diffuse reflection, with and without depth of field. Assets by NVIDIA.