The Application
The whole process gave me lots of insights into how such engines work and how to use them. The main challenge was to configure Vulkan. The boilerplate is the biggest challenge of not knowing how to design the data structures to manage the application reasonably. Therefore I had to refactor it a few times to get a satisfying result.
​
Instead of using GLFW like most tutorials, I decided to use SDL for the event and window handling. The host program (the program on the CPU) is capable of managing multiple models with distinct properties such as colour, texture, different uniform data, and so on. For the shaders, I have decided to make a simple shader that supports multiple lights. It consists of basic light models and supports only a limited amount of point lights.