• Stars
    star
    478
  • Rank 91,950 (Top 2 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 2 months ago

Reviews

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

Repository Details

Personal hobby project to experiment with various rendering techniques.

D3D12 Toy Renderer

This is a personal toy renderer meant as a playground for experimenting with ideas and rendering techniques.

Requirements

  • Visual Studio 2022
  • Windows SDK 10.0.19041.0
  • DXR compatible GPU with Resource Heap Tier 3 support

Building

  • Run scripts/Generate_VS2022_Windows.bat to generate VS project files.
  • Open D3D12.sln and Compile/Run

Images

Visibility Buffer - Deferred Texturing

2 Phase Occlusion Culling Visibility Buffer Deferred Texturing

GPU Driven rendering with mesh shaders using the 2 Phase Occlusion algorithm to a visibility (ID) buffer.

Dynamic Diffuse Global Illumination (DDGI)

DDGI Disabled Path Traced

Render Graph

Resource re-use Graph visualization

Tiled and Clustered Light Culling

View Clustered Buckets Tiled Buckets

Volumetric Fog

Enabled Disabled

Reference path tracer

Concurrent Binary Tree - GPU driven runtime subdivision

Volumetric Clouds

Cascaded Shadow Maps

View Color Coded Cascades

Auto exposure

View

Some noteable features

  • GPU driven rendering
  • 2 phase occlusion culling
  • Render graph
  • Deferred texturing
  • Path tracing mode
  • Tiled light culling (Forward+)
  • Clustered light culling (Clustered Forward+)
  • Cascaded shadow maps
  • Volumetric lighting
  • Bindless resources, no input layouts
  • Compute particles
  • Dynamic eye adaptation
  • Screen space reflections (wip)
  • Raytraced reflections (wip)
  • Screen space ambient occlusion
  • Raytraced ambient occlusion (wip)
  • Temporal anti-aliasing
  • Microfacet BRDF
  • Shader hot-reloading