Nova is a DirectX 12 renderer that I started working on in my free time at the start of 2024.

This personal project allowed me to learn the core of the DirectX 12 API while being able to showcase the fundamental rendering techniques. I was also able to delve into some advanced techniques like Diffuse image-based lighting.

Nova’s framework has been fully written in C++. The entire project is open-source and available on GitHub:
https://github.com/stefanpgd/Nova

The project duration was two and a half months and I started January 2024.


What did I do?

  • Learned the fundamentals of the DirectX 12 API
  • Written a rendering pipeline with multiple rendering stages
  • Using physically based rendering pipeline to present models
  • Use HDRi(s) to create Diffuse Irradiance maps for IBL
  • Based on the available textures for a given model, adjust the rendering pipeline
  • Implemented directional shadow mapping
  • Able to load in glTF scenes with transformed hierarchies
  • Able to update constant data at runtime, allowing me to properly update any data required during the rendering pipeline