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

I wanted to better familiarize myself beyond the surface level of a modern graphics API. Knowing that I also wanted to do more advanced graphics techniques I thought of combining the both within a single project.

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


What did I do?

  • 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

What is up next?

As of the moment of writing ( 15th of March, 2024 ), I want to implement a few more things. Those being:

  • Specular IBL
  • Post Processing
  • Scene Serialization
  • Camera modes

Afterwards I want to implement something more new to me. That either being:

  • Implementing DXR ( DirectX Ray Tracing )
  • Terrain Generation