This project is an homemade 3D Renderer using Vulkan. It is highly WIP and mostly a way for me to learn computer graphics and the API.
- Rasterizer Pipeline
- Compute Pipeline (for background)
- GLTF Loader
- FPS like camera
- Point Light
- Blinn Phong lighting
- Ray tracing pipeline (WIP)
- Acceleration structure
- BLAS
- TLAS
- Raygen shader
- Closest hit shader
- Miss Shader
- Any Hit Shader
- Antialiasing
- Reflections
- Path Tracing
- Acceleration structure
Most of the dependencies are retrieved using CMake FetchContent. They should be downloaded when configuring the CMake project. The only prerequisite are CMake and the Vulkan SDK that must be installed on your environment.
This project uses CMake as a build system, there is a CMakePresets.json provided as a template to quickly get started.
You'll have to fill the following empty cacheVariables :
"environment": {
...
"VULKAN_SDK": "",
...
}And provide the path to the libraries. For the vulkan SDK provide the root directory, not the Bin that contains the executables.
You'll need at first to configure the project using CMake, this step will also compile the shaders. Then build it using CMake, I personnally use the CMake integration from Visual Studio.
If you don't know how to use CMake please check this ressource
When trying to debug shaders I encountered an issue :
the executable wasn't able to find a specific DLL, I had to provide the directory in my PATH variable :
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64