lucyDX12

A Direct3D 12 renderer written in Odin

A Direct3D 12 renderer I’m building in Odin to learn modern graphics programming.

lucydx12

Features

  • Bindless: one root signature for every PSO; shaders index resources directly from the descriptor heap.
  • Deferred rendering: G-buffer pass (albedo, normals, AO + roughness), then a lighting pass.
  • Asset streaming: a worker thread uploads scenes on the GPU copy queue, so scene switches don’t stutter.
  • Shader interop through RTTI: input layouts and HLSL structs are generated from Odin structs.
  • Shadow maps with PCF filtering.
  • FXAA in a compute pass.
  • glTF loading with a cache of GPU-ready, mipmapped textures.
  • Dear ImGui for live tweaking.

To work on next:

  • An Accurate PBR lighting model
  • Character Animation
  • Whatever is needed to support my next game (unannounced)

Scene switch while the camera moves; assets stream in without stutter.

Shadow maps.

G-buffer in RenderDoc

G-Buffer view in Renderdoc