Kai Huang

Home

Blog

Portfolio

Kaguya

Real-time renderer leveraging DXR and D3D12.

Features

Graphics
  • Render graph system
  • 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
      • Supported types:
        • 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
      • Supported BSDFs:
        • Lambertian
        • Mirror
        • Glass
        • Disney
    • NativeScript: C++ scripting

0

1

2

3

4