(Prior version of repo has now been moved to the tut0-22 branch)
A video tutorial series introducing computer graphics for Vulkan®, the new generation graphics and compute API from Khronos. The focus of this tutorial is to be approachable to newcomers to computer graphics and graphics APIs, explaining not just the Vulkan API but also computer graphics theory, mathematics and engine architecture.
Install the dependencies: cmake, glm, vulkan and glfw
For example
sudo apt install vulkan-tools
sudo apt install libvulkan-dev
sudo apt install vulkan-validationlayers-dev spirv-tools
sudo apt install libglfw3-dev
sudo apt install libglm-dev
sudo apt install cmake
To Build
cd LittleVulkanEngine
./unixBuild.sh
Then in a terminal window
brew install cmake
brew install glfw
brew install glm
To Build
cd littleVulkanEngine
./unixBuild.sh
cd littleVulkanEngine
mkdir build
cmake -S . -B .\build\
cd littleVulkanEngine
./mingwBuild.bat
This branch is a legacy branch that holds all the older tutorials in the series, starting from the beginning and going up until tutorial 22.
Find the Preliminary Completed Project Here
In this tutorial we add a point light object to the global UBO and update the vertex shader to make use of this new lighting technique. (Video)
In this tutorial we explore the differences in per-fragment versus per-vertex lighting (Video)
In this tutorial I change the project to use cmake rather than a simple makefile to make building on multiple platforms simpler and more straightforward. (Video)
In this tutorial we implement a second rendering system that uses the billboard technique to render a spherical point light. (Video)
In this tutorial we add support for multiple point light objects in the scene. Lights will still be stored in the GlobalUbo, however for rendering the light objects we will use push constants.
(Video)
In this tutorial we add specular lighting to our simple fragment shader.
(Video)
In this tutorial we add a limited blending capability to our point light system, allowing them to be rendered with a nicer appearance.
(Video)
Khronos made an official Vulkan Samples repository available to the public (press release).
You can find this repository at https://github.com/KhronosGroup/Vulkan-Samples
Thanks to the authors of these libraries :
Thanks to LunarG
Thanks to the wonderful opensource examples by Sascha Willems
Thanks to ThinMatrix and his wonderful OpenGL game tutorial series which was a huge inspiration for this series and how I first started learning computer graphics
Thanks to Sean Plott and the #DK30 challenge, for providing the motivating kick to give this a shot