Graphics Programming with Vulkan and C++ [2025]
What you'll learn
- Create graphics applications
- Apply common rendering math
- Use Vulkan for graphics programming
- Apply good coding standards
- Creating and managing windows
- Writing shader code using GLSL
- Setting up a project using CMake
- Setup a graphics pipeline
- Basic graphics theory
Requirements
- Good Understanding of modern C++ (pointers, references, lambdas)
- Basic Understanding of OOP
- Knowledge of the Standard C++ Library & Algorithms
Description
Welcome
Vulkan is the newest and most popular graphics API out there. It is the successor of the already deprecated OpenGL, and it is the future for any kind of cross-platform graphical applications. It is extremely performant, which makes it perfect for game and game engine development.
With this course I aim to teach you the very basics of computer graphics with Vulkan in some short and simple lessons. I believe everyone can learn and it is especially important to have easy to understand chunks that can be consumed in short bursts.
This course will cover: setting up your C++ project, creating a window, initializing Vulkan, rendering a simple triangle, compiling shaders, debugging issues, rendering vertices, basic transformations for 3D.
I will not go as far as to teach complex topics like post-processing or shadows since the course aims to be short and accessible. The course will get regular updates, though that will cover any major changes in the specification.
The course is taught on Microsoft Windows, but most of the knowledge gained can be used on any platform.
Technologies Used
Vulkan SDK—the main topic of the course is the Vulkan graphics library specification. This is what "talks" to the GPU of your PC and renders any graphical information that you send to it.
GLFW—Abstracts handling windows so that we don't have to call native platform functions. This way the course would be mostly accessible to people on any platform.
GLM—A mathematical library that will help with the transformation of 3D information.
CMake—for managing and compiling the project. We will use a modern setup that is straightforward to understand and use.
Who this course is for:
- Junior C++ programmers
- Game engine programmers
- 3D graphics programmers switching to Vulkan
Instructor
Hi, I'm Hristo,
I'm a Software Engineer and in my professional carrer I've been a Technical Lead with C# and Senior Gamplay Programmer with C++. I have practical and advanced knowledge in many programming languages. I am also the co-founder of a startup called Paper Cranes Ltd. which specializes in website development.
In my line of work, I've mentored and elevated many professionals to be experienced developers. If you learn with me you will be gaining real practical knowledge that you can apply tomorrow at your job or at your next project.