Menu Share

My Course on Vulkan is out!

by | Published on
category C / C++

I created my third course. In this one I teach a lot about graphics programming using Vulkan. Vulkan is the most up to date and popular open-source specification for graphics programming. It is popular within the gaming industry as well as in the academic environments (where it might be used for computing and not just graphics). It is also the successor of OpenGL, one of the most wide-spread libraries out there.

Table of Contents

Promo

How to get the course?

You can watch the course now on Udemy. If you use the link above you will get a discount and you also support my work since I will get 97% for this which is a win-win situation.

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.

To participate and learn from this course you should already know C++ at a good level since the basics of programming won’t be covered. Otherwise this course is appropriate for junior developers that are familiar with the language.

Libraries

Throught the course you will learn how to use a few different libraries. Learning these will generally help you understand a few more concepts than just the UI programming bit. The few major libraries that I’ve inlcuded in the course are:

  • 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 transformation of 3D information.
  • SPDLOG – A library about logging messages
  • CMake – for managing and compiling the project. We will use a modern setup that is easy to understand and use.

What will you learn?

  • Creating graphics applications
  • Apply common rendering math
  • Use Vulkan for graphics programming
  • Apply good coding standards
  • Creating and manageing 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

Leave a comment

Your email address will not be published. Required fields are marked *

Comments:

#Hristo Iliev
Hey, I will be glad to answer that question. The course overview lecture is free for previewing on Udemy if you wish to know what exactly the main course will cover step by step. Otherwise to answer about the end result - I am covering topics up until textured rendering of two triangles forming a square. The course doesn't cover loading models nor does it cover advanced rendering techniques connected with shading like lights or skeletons for animation. Regarding your question on instancing - the course will get future updates at some point and it might become more attractive or you might decide to buy it now. The updates will first start with the Vulkan C++ side of things like instancing, multiple pipelines, frames in flight, loading from model files since that is the core of the power of Vulkan. I will probably add a bit more on shading but shading is a whole new topic in general and deserves a whole new course to get in depth into the shading techniques like lighting, shadows, normals and normal maps, depth, etc. If I add all of these into this course it will become bloated and it will also turn away a lot of people who will see it overhwelming.
#Bob
Man, do I hate how hard it is to get a hold of people today! Whatever happened to just a simple email or an address for my quill and ink? haha I was wondering if you could show more of the end product of your Vulkan series. Is this simply just a triangle on the screen? Do you cover any type of Sprite Batching or Vulkan way of "Instancing." Is there maybe a GitHub to view the sources you go through projects? I'd like to see exactly what you are covering. The Imgui one looks interesting as well. Thanks