Kaguya

Real-time renderer leveraging DXR and D3D12

Features

Graphics

  • Render Graph
  • Progressive stochastic path tracing
  • Importance sampling of BSDFs and multiple importance sampling of lights
  • Lambertian, Mirror, Glass, and Disney BSDFs
  • Point and quad lights
  • Real-time path tracing using both DXR 1.0 and DXR 1.1

D3D12

  • Bindless resource
  • Asynchronous PSO compilation using coroutines and threadpools
  • Utilization of graphics and asynchronous compute queues
  • Acceleration structure compaction using modified RTXMU

Misc

  • Custom scene serialization using json
  • Custom binary format for loading meshes and meshlets
  • Asynchronous asset importing using threads
  • Asset management using lightweight handles

World

  • Ecs with the following implemented components:
    • Core: Main component that all actor in the scene have, it contains tag that identifies the actor and a transform which controls position, scale, and orientation

    • Camera: controls camera parameters for scene viewing

    • Light: used to illuminate the scene, controls light parameters:

      • Point
      • Quad
    • Static Mesh: references a mesh in the asset window to be rendered and controls material parameters and submits the referenced mesh to RaytracingAccelerationStructure for path tracing

      • Lambertian
      • Mirror
      • Glass
      • Disney
    • NativeScript: C++ scripting

Gallery

Image

Image

Image

Image

Image