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
- Supported types:
- 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
- Supported BSDFs:
- NativeScript: C++ scripting