Catalogue

Record Details

Catalogue Search



The Modern Vulkan Cookbook A Practical Guide to 3D Graphics and Advanced Real-Time Rendering Techniques in Vulkan  Cover Image E-book E-book

The Modern Vulkan Cookbook [electronic resource] : A Practical Guide to 3D Graphics and Advanced Real-Time Rendering Techniques in Vulkan / Preetish Kakkar, Mauricio Maurer.

Kakkar, Preetish, (author.). Maurer, Mauricio, (author.).

Summary:

Discover essential real-time rendering techniques that can be extended or applied directly to existing or new rendering engines focusing only on Vulkan Key Features Explore a wide range of advanced 3D graphics programming techniques to leverage the full potential of Vulkan API Learn tips, tricks, and solutions to boost your 3D graphics for a wide range of cross-platform devices Implement geometry projection, texturing, and lighting techniques Purchase of the print or Kindle book includes a free PDF eBook Book Description Vulkan is a graphics API that gives the program total control of the GPU, allowing the GPU to be used to its full potential. This cookbook will uncover useful techniques for emerging new technologies, such as hybrid rendering, extended reality - mixed reality (MR), augmented reality (AR), virtual reality (VR) - and GPU-driven rendering, and even features a dedicated chapter to help you debug and profile your graphics applications with tips and tricks tested in real-world scenarios. The book starts by explaining basic Vulkan concepts while guiding you through the implementation of a basic graphics engine. The building blocks presented in the first few chapters will then help you implement more advanced techniques and algorithms, while getting you acquainted with the inner workings of Vulkan. Gradually, you'll discover how Vulkan can be used to build hybrid renderers as well as leveraged for the future of graphics with AR/VR/MR. Moreover, you'll gain an understanding of how it can be debugged or measured for performance. By the end of this book, you'll be well versed in how to use Vulkan to write graphics applications and how graphics algorithms are implemented using Vulkan. What you will learn Set up your environment for Vulkan development Understand how to draw graphics primitives using Vulkan Use state-of-the-art Vulkan to implement a wide variety of modern rendering techniques such as DLSS, TAA, OIT, and foveated rendering Implement hybrid techniques using rasterization and ray tracing to create photorealistic real-time engines Create extended reality (AR/VR/MR) applications using OpenXR and Vulkan Explore debugging techniques for graphics applications that use Vulkan Who this book is for This book is for computer graphics engineers who have experience in at least one graphics API, such as OpenGL (any variations), DirectX, or Metal, and wish to delve into Vulkan using hands-on, practical examples. Graphics engineers looking to use Vulkan's capabilities to develop real-time hybrid renderers and create XR applications will also find this book helpful. Familiarity with graphics APIs (such as OpenGL, OpenGL ES, Metal, or DirectX), proficiency in C++ programming, and a basic understanding of computer graphics algorithms are assumed.

Record details

  • ISBN: 9781803241470
  • ISBN: 1803241470
  • Physical Description: 1 online resource (335 p.)
  • Edition: 1st edition.
  • Publisher: Birmingham, UK : Packt Publishing Ltd., 2024.

Content descriptions

General Note:
Description based upon print version of record.
How to do it...
Formatted Contents Note:
Cover -- Title Page -- Copyright and Credits -- Contributors -- Table of Contents -- Preface -- Chapter 1: Vulkan Core Concepts -- Technical requirements -- Getting to know the Vulkan API -- Calling API functions -- Getting ready -- How to do it... -- Learning about Vulkan objects -- Getting ready -- How to do it... -- Using Volk to load Vulkan functions and extensions -- Getting ready -- How to do it... -- Using Vulkan extensions correctly -- Getting ready -- How to do it... -- Using the Validation Layer for error checking -- Getting ready -- How to do it... -- Enumerating available instance layers
Getting ready -- How to do it... -- Enumerating available instance extensions -- Getting ready -- How to do it... -- Initializing the Vulkan instance -- Getting ready -- How to do it... -- Creating a surface -- Getting ready -- How to do it... -- Enumerating Vulkan physical devices -- Getting ready -- How to do it... -- Caching the properties of queue families -- Getting ready -- How to do it... -- Enumerating physical device extensions -- Getting ready -- How to do it... -- Reserving queue families -- Getting ready -- How to do it... -- Creating a Vulkan logical device -- Getting ready -- How to do it...
Retrieving the queue object handle -- Getting ready -- How to do it... -- Creating a command pool -- Getting ready -- How to do it... -- Allocating, recording, and submitting commands -- Getting ready -- How to do it... -- Reusing command buffers -- Getting ready -- How to do it... -- Creating render passes -- Getting ready -- How to do it... -- Creating framebuffers -- Getting ready -- How to do it... -- Creating image views -- Getting ready -- How to do it... -- The Vulkan graphics pipeline -- How to do it... -- Compiling shaders to SPIR-V -- Getting ready -- How to do it... -- Dynamic states -- Getting ready
How to do it... -- Creating a graphics pipeline -- Getting ready -- How to do it... -- Swapchain -- Getting ready -- How to do it... -- Understanding synchronization in the swapchain -- fences and semaphores -- Getting ready -- How to do it... -- Populating submission information for presentation -- Getting ready -- How to do it... -- Presenting images -- Getting ready -- How to do it... -- Rendering a triangle -- Getting ready -- How to do it... -- Chapter 2: Working with Modern Vulkan -- Technical requirements -- Understanding Vulkan's memory model -- Getting ready -- How to do it...
Instantiating the VMA library -- How to do it... -- Creating buffers -- Getting ready -- How to do it... -- Uploading data to buffers -- Getting ready -- How to do it... -- Creating a staging buffer -- Getting ready -- How to do it... -- How to avoid data races using ring buffers -- Getting ready -- How to do it... -- Setting up pipeline barriers -- Getting ready -- How to do it... -- Creating images (textures) -- Getting ready -- How to do it... -- Creating an image view -- Getting ready -- How to do it... -- Creating a sampler -- Getting ready -- How to do it... -- Providing shader data -- Getting ready
Subject: Vulkan (Computer file)
Rendering (Computer graphics)
Computer programming.
Rendu (Infographie)
Programmation (Informatique)
computer programming.


Additional Resources