A video tutorial series introducing computer graphics for Vulkan®, the new generation graphics and compute API from Khronos.
Currently this repository is more for use as a reference and for my own use to track the progress of this series, rather than something that can be cloned and used as a starting point, at least until I make a more robust build system.
-
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
- Download and install Windows Vulkan sdk
- Download and install Windows cmake x64 installer
- Make sure to select "Add cmake to the system Path for all users"
- Download GLFW (64-bit precompiled binary)
- Download GLM
- Download and open the project and rename "envWindowsExample.cmake" to ".env.cmake"
- Update the filepath variables in .env.cmake to your installation locations
- In windows powershell
cd littleVulkanEngine
mkdir build
cmake -S . -B .\build\
- If cmake finished successfully, it will create a LveEngine.sln file in the build directory that can be opened with visual studio. In visual studio right click the Shaders project -> build, to build the shaders. Right click the LveEngine project -> set as startup project. Change from debug to release, and then build and start without debugging.
- Download and install MinGW-w64, you probably want MingW-W64-builds/
- Make sure MinGW has been added to your Path
- Also set MINGW_PATH variable in the project's .env.cmake
- In windows powershell
cd littleVulkanEngine
./mingwBuild.bat
- This will build the project to build/LveEngine.exe, double click in file explorer to open and run
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 projrect to use cmake rather than a simple makefile to make building on multiple platforms simpler and more straightforward. (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 BlurryPiano for his Youtube series and all his work. 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
- Vulkan and the Vulkan logo are trademarks of the Khronos Group Inc.