Adria-DX12 icon indicating copy to clipboard operation
Adria-DX12 copied to clipboard

Rendergraph-based graphics engine written in C++ using DirectX12

Adria-DX12

Graphics engine written in C++ using DirectX12/DXR. For successful build you will need textures that you can find here.

Features

  • Render Graph
    • Automatic Resource Barriers
    • Resource Reuse using Resource Pool
    • Automatic Resource Bind Flags and Initial State Deduction
    • Pass Culling
    • Optional Multithreaded Command List Building
  • Tiled Deferred Rendering
  • Clustered Deferred Rendering
  • Deferred + Forward Rendering
  • Physically Based Shading
  • Image Based Lighting
  • Normal Mapping
  • Ray Traced Shadows (DXR)
  • Shadows
    • PCF Shadows for Directional, Spot and Point lights
    • Cascade Shadow Maps for Directional Lights
  • Volumetric Lighting
    • Directional Lights with Shadow Maps
    • Directional Lights with Cascade Shadow Maps
    • Point and Spot Lights
  • HDR and Tone Mapping
  • Bloom
  • Depth Of Field
  • Bokeh
  • Ambient Occlusion: SSAO, HBAO, RTAO (DXR)
  • Reflections: SSR, RTR (DXR)
  • SSCS
  • Deferred Decals
  • FXAA
  • TAA
  • God Rays
  • Lens Flare
  • Motion Blur
  • Fog
  • Volumetric Clouds
  • Hosek-Wilkie Sky
  • Ocean FFT
    • Adaptive Tesselation
    • Foam
  • Particles
  • ImGui Editor
  • Profiler
  • Model Loading with tinygltf
  • Shader Hot Reload
  • Entity-Component System
  • Camera and Light Frustum Culling
  • Bindless Texturing
  • DirectX12 Render Passes

TODO

  • Improve DXR features
  • Add DXR Global Illumination

Dependencies

tinygltf

ImGui

ImGuizmo

nativefiledialog

stb

DirectXShaderCompiler

D3D12MemoryAllocator

FastNoiseLite

json

Screenshots

Since this is DirectX 12 port of this engine, you can see some of the screenshots there. All of DXR screenshots will go here:

Cascaded Shadow Maps Hard Ray Traced Shadows

Ray Traced Reflections, RTAO and Depth of Field Bokeh alt text