This is my very first project in Vulkan.
I developped a simple rasterizer and I worked on rendering multiple shaders at the same time.
I also worked on different kind of PBR shaders.
This project is a simple 3D renderer using vulkan. I followed this Vulkan tutorial as a base and I then added some features to the project. This was my very first project with Vulkan so the setup took a lot of time to me, but it helped me a lot to understand how a graphics pipeline works. It was also a good training to understand how shaders work.
To make this project compiling cross-platform, I used CMake.
Abstraction out of the tutorial's code to make the porject more portable.
Camera that can rotate and move.
Render multiple pipeline at once (2D and 3D).
OBJ parser.
Depth buffering.
Load textures (using stb library).
Multiple PBR shaders (diffuse/specular and glocinness) using SPIR-V.
Load scenes from json files.
Multiple ways to write PBR shaders.
The Vulkan Graphics pipeline :
Buffer concept.
Vertex buffer
Index buffer
Uniform buffer
Depth buffering
Staging buffer
Push constants
Render passes
Descriptors
Pool concept.
Descriptor pools.
Descriptor sets.
Pipelines
Json parsing.
Using CMake on an ambitious project.