Preface
This book is designed for experienced computer graphics software engineers who might be well versed in older graphics APIs such as OpenGL and DirectX 10 but are relatively new to modern graphics APIs. Like you, we found ourselves needing to learn Vulkan but struggling to implement practical solutions because we didn’t understand the basic concepts of Vulkan, which is, in itself, a complicated and vast API. The goal of this book is to introduce you to the essential concepts of the API and then walk you through hand-picked, tried-and-true algorithms that show you the new and nuanced aspects of Vulkan in each recipe.
This book is divided into five parts and covers, in this order, the following:
- Basic Vulkan concepts, how and why to use them, and how they fit into the bigger picture of writing an application using the Vulkan API
- General graphics algorithms implemented using Vulkan, including their features and how they can be used to achieve all sorts of tasks relevant to graphics applications
- Using Vulkan to build a GPU ray tracer and a hybrid renderer
- How to use Vulkan and OpenXR to write applications for the incredible new world of VR, MR, and AR
- Ways to debug and profile your Vulkan implementation
There are many resources that cover the first part of what this book explores, but in this book, we offer a two-part story that progressively helps you understand the basic Vulkan concepts by providing easy and practical examples. The subsequent parts present implementations that work and can be used as a reference for the implementation of your own graphics engine.
The main goal of the repository provided with this book was not to achieve the highest performance, find clever ways to implement things, or even implement the shiniest new algorithm shown at last year’s GDC or SIGGRAPH. It was simplicity and completeness. We offer tips and tricks on how some Vulkan features can and/or must be used, and most recipes have been tested and debugged and provide you with a self-contained working solution that you can improve and use in your own code base. Each recipe is its own executable and can be inspected independently from the others, making them easy to read. That also makes it easy to understand all the details of each algorithm from beginning to end.
Vulkan is the future de-facto graphics API for all devices and types of applications. It’s a mature, feature-rich, and maintained API, supported by all GPU vendors, operating systems, frameworks, and languages. If you intend to write graphics applications or write one that uses only the compute facilities of Vulkan, getting to know the API is a must, and you need to learn it right now!