The book is structured in the following chapters:
- Chapter 00: Vulkan introduction and book pre-requisites.
- Chapter 01: Describes the basic scaffolding code to support rendering.
- Chapter 02: We start with the first Vulkan pieces of code that will create a Vulkan instance.
- Chapter 03: We continue with the definition of more basic Vulkan concepts such as the physical and Logical devices, surfaces and queues.
- Chapter 04: The key mechanism to present images to the screen is presented: the Swap chain.
- Chapter 05: In this chapter we will setup the basic structures for rendering (render passes, command buffers and the synchronization mechanisms).
- Chapter 06: In this chapter we define the classes required to define the vertices, use the graphics pipeline and create shaders. We will draw our first shape to the screen (a triangle).
- Chapter 07: In this chapter we go 3D by implementing depth testing and add windows resizing support.
- Chapter 08: In this chapter we add support for loading complex 3D models using Assimp and textures.
- Chapter 09: We will automatically generate mipmaps, add support for transparent objects, add a camera to move around the scene and use dynamic uniform objects.
- Chapter 10: Deferred rendering (I).
- Chapter 11: Deferred rendering (II).
- Chapter 12: Vulkan Memory Allocator and specialization constants.
- Chapter 13: Cascade shadows.
- Chapter 14: Animation.
- Chapter 15: Render of GUI elements through ImGui.
- Chapter 16: This chapter starts the way to a bind-less render through indirect drawing.
- Chapter 17: Sound with OpenAL.
- Appendix 01: This chapter provides some insights on how to troubleshoot a loss of device error.
- Appendix 02: This chapter provides a simple 3D game to put everything together