Book Image

Mastering Graphics Programming with Vulkan

By : Marco Castorina, Gabriel Sassone
5 (1)
Book Image

Mastering Graphics Programming with Vulkan

5 (1)
By: Marco Castorina, Gabriel Sassone

Overview of this book

Vulkan is now an established and flexible multi-platform graphics API. It has been adopted in many industries, including game development, medical imaging, movie productions, and media playback. Learning Vulkan is a foundational step to understanding how a modern graphics API works, both on desktop and mobile. In Mastering Graphics Programming with Vulkan, you’ll begin by developing the foundations of a rendering framework. You’ll learn how to leverage advanced Vulkan features to write a modern rendering engine. The chapters will cover how to automate resource binding and dependencies. You’ll then take advantage of GPU-driven rendering to scale the size of your scenes and finally, you’ll get familiar with ray tracing techniques that will improve the visual quality of your rendered image. By the end of this book, you’ll have a thorough understanding of the inner workings of a modern rendering engine and the graphics techniques employed to achieve state-of-the-art results. The framework developed in this book will be the starting point for all your future experiments.
Table of Contents (21 chapters)
1
Part 1: Foundations of a Modern Rendering Engine
7
Part 2: GPU-Driven Rendering
13
Part 3: Advanced Rendering Techniques

Index

As this ebook edition doesn't have fixed pagination, the page numbers below are hyperlinked for reference only, based on the printed edition of this book.

A

Acceleration Structures (ASes) 268, 276

any-hit shader 269

application layer 16

Array of Structures (AoS) 123

arrays 10

asset baking 11

async compute

separate queue, adding 114

AsynchronousLoader class

command pools, creating for transfer queue 69, 70

file request, processing 72

finished transfer renderer, signaling 75

responsibilities 69

semaphores and fences, creating for GPU synchronization 71, 72

staging buffer, creating 70, 71

upload request, processing 72-75

asynchronous loading 61-63

AsynchronousLoader class 69

I/O thread and tasks, creating 63, 64

Vulkan queues 64

Axis Aligned Bounding Boxes (AABBs) 131, 160, 269

B

banding 234

bi-directional distribution function (BRDF) 25

bindless 31

bindless rendering

descriptor...