The Vulkan API is gaining traction, and as a result, more Vulkan books and resources are becoming available. It can be difficult to figure out where to start out as a beginner. This guide aims to give you an overview of the different books and resources available to you. First of all, let’s start by looking at what the Vulkan API is, and why you should consider learning it.
The Vulkan API
Vulkan is a relatively new 3D graphics and compute API by the Khronos Group. Many people believe the Vulkan API to be the future of cross-platform 3D graphics. Compared to the industry-standard OpenGL, Vulkan offers much more control over the GPU. This results in better performance and allows you to use the GPU to the fullest extent. There is a large shift in the gaming industry towards Vulkan, as a result, many companies have already made the transition (Valve, Unity, Unreal Engine, id Software, and others). If you want to get into the graphics industry and you get ahead of the curve, I would recommend that you learn to use Vulkan now. While the Vulkan API offers you more control and performance, it does come with the cost of increased complexity.
It can be daunting to learn Vulkan as a beginner due to this complexity. However, it doesn’t have to be! There are plenty of good resources that explain how Vulkan works and how you can use it. Here is a list of the best books and online resources to help you learn to program with the Vulkan API.
Vulkan Books and Resources
The Vulkan Tutorial
One of the best ways to get started with Vulkan is heading over to the Vulkan Tutorial site and going through the chapters. The tutorial is very comprehensive and well written. It takes you through setting up Vulkan and creating your first Vulkan application with all steps included.
The Vulkan Tutorial is more practical than what you might find in a theory-rich textbook, therefore, it serves as a good introduction to try out Vulkan and see what it has to offer. You can dig deeper into the theory behind Vulkan when you have some hands-on experience.
The Vulkan Cookbook is a good in-depth textbook to learn Vulkan. Some basic familiarity with 3D graphics is recommended, however, as far as Vulkan goes it starts with the basics. The book is praised as being one of the best materials on Vulkan, due to it being perhaps the most comprehensive book on Vulkan thus far.
The book takes you through everything you need to know to learn Vulkan, from the practical setup and use of Vulkan, to the theory behind command buffers, pipelines, shaders, and more. As the title suggests it is a cookbook, and as a result, each “recipe” is also very practical in showing you how to achieve specific things using Vulkan. It is a huge help for someone starting out with Vulkan!
Read the specification
Yes, you read that right. Read the specification. I know what you’re thinking (and rightly so): Isn’t the specification only for the industry experts and maintainers of Vulkan? Not exactly. The thing is, Vulkan’s specification is actually quite readable and understandable, even for a beginner! With that said, however, I can’t recommend you read through the spec from start to end with no prior experience. You can use it as a reference, and you can read it to understand certain topics in depth. The good thing about the specification is that it will always be up-to-date and as accurate as you’re going to get.
Remember to choose the newest specification available. You can find the current specification on the Khronos website.
A trip through the graphics pipeline
Fabian Giesen has written a fantastic blog series on how the graphics pipeline works, which you can check out on his blog. Of course, this isn’t strictly for Vulkan, as much as it is for all of graphics programming in general. For a beginner, however, it is very useful to understand the graphics pipeline, regardless of what graphics API you are using. I recommend that you check out the series if you aren’t familiar with what goes on inside the graphics pipeline.
The Vulkan Programming Guide
The Vulkan Programming Guide is another book on Vulkan programming. It goes through the Vulkan API in a fashion similar to the specification. I wouldn’t recommend this is a book to learn Vulkan as a complete beginner, but rather to serve as a reference for programming Vulkan. As of writing this, the first edition of the book is a little outdated, so it may be a good idea to wait around till a new edition comes out.
Don’t forget to check out some of the online examples available. Books and tutorials are great for teaching the concepts, but seeing some full examples of Vulkan being used is going to be a great help to you.
One of the best places for Vulkan examples is on SaschaWillems’ Github repository (thank you for this amazing effort). The author of the repository has created plenty of examples that use Vulkan for a wide variety of features. Read through some of the code to get an idea of what Vulkan code looks like, and use it as a reference if you are stuck implementing some of these features yourself!
Vulkan is constantly evolving, and as a result, new and more up-to-date material will keep showing up for the foreseeable future. As of right now, the amount of books on Vulkan is limited. When the API matures we are likely to see more books on the topic. I am going to try to keep this document updated and add new Vulkan books and resources as they become available. If I missed anything or if you have a suggestion, feel free to leave a comment!