My Account Log in

1 option

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

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Kakkar, Preetish, author.
Maurer, Mauricio, author.
Language:
English
Subjects (All):
Video games--Development.
Video games.
Video games--Programming.
Physical Description:
1 online resource (335 pages)
Edition:
First edition.
Distribution:
London : Bloomsbury Publishing (UK), 2025.
Place of Publication:
Birmingham : Packt Publishing, 2024.
System Details:
text file HTML
Biography/History:
Kakkar Preetish: Preetish Kakkar is a senior computer graphics engineer with Adobe and works on the rendering engine that powers products such as Aero, Stager, and After Effects. He has worked at Microsoft, MathWorks, and Stryker, where he co-authored various rendering engines as well as using other engines such as Unreal and Unity. He has more than 15 years of software development experience along with 10+ years in 3D graphics, scientific visualization, and medical imaging. Maurer Mauricio: Mauricio Maurer is a computer graphics engineer with nearly 20 years of experience working with 2D and 3D rendering, computational geometry, and rasterization in the fields of scientific visualization, CAD/CAM, and social networking. He is currently a graphics software engineer at Meta, helping to develop the next generation of AR/VR devices. Mauricio holds two master's degrees in computer science with a specialization in computer graphics from SUNY Stony Brook, NY, and the Federal University of Parana, Brazil.
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.
Contents:
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
Using Volk to load Vulkan functions and extensions
Using Vulkan extensions correctly
Using the Validation Layer for error checking
Enumerating available instance layers
Enumerating available instance extensions
Initializing the Vulkan instance
Creating a surface
Enumerating Vulkan physical devices
Caching the properties of queue families
Enumerating physical device extensions
Reserving queue families
Creating a Vulkan logical device
Retrieving the queue object handle
Creating a command pool
Allocating, recording, and submitting commands
Reusing command buffers
Creating render passes
Creating framebuffers
Creating image views
The Vulkan graphics pipeline
How to do it...
Compiling shaders to SPIR-V
Dynamic states
Creating a graphics pipeline
Getting ready.
How to do it…
Swapchain
Understanding synchronization in the swapchain - fences and semaphores
Populating submission information for presentation
Presenting images
Rendering a triangle
Chapter 2: Working with Modern Vulkan
Understanding Vulkan's memory model
Instantiating the VMA library
Creating buffers
Uploading data to buffers
Creating a staging buffer
How to avoid data races using ring buffers
Setting up pipeline barriers
Creating images (textures)
Creating an image view
Creating a sampler
Providing shader data
Specifying descriptor sets with descriptor set layouts
Passing data to shaders using push constants
Creating a pipeline layout
Creating a descriptor pool
Allocating descriptor sets
Updating descriptor sets during rendering
Passing resources to shaders (binding descriptor sets)
Updating push constants during rendering
Customizing shader behavior with specialization constants
Implementing MDI and PVP
Implementing MDI.
Getting ready
Using PVP
Adding flexibility to the rendering pipeline using dynamic rendering
Transferring resources between queue families
Chapter 3: Implementing GPU- Driven Rendering
Implementing GPU-driven line rendering
Expanding line-drawing techniques to render textual values from shaders
Drawing text using SDF
See also
Frustum culling using compute shaders
How it works…
Chapter 4: Exploring Techniques for Lighting, Shading, and Shadows
Implementing G-buffer for deferred rendering
Implementing screen space reflections
Implementing shadow maps for real-time shadows
There's more …
Implementing screen space ambient occlusion
Implementing a lighting pass for illuminating the scene
Chapter 5: Deciphering Order-Independent Transparency
Implementing Depth-Peeling
Implementing Dual Depth-Peeling
Implementing Linked-List Order-Independent Transparency
There's more…
Implementing Weighted Order-Independent Transparency
Chapter 6: Anti-Aliasing Techniques
Enabling and using Vulkan's MSAA
Applying FXAA.
Utilizing TAA
Applying DLSS
Chapter 7: Ray Tracing and Hybrid Rendering
Implementing a GPU ray tracer
Monte Carlo method
Implementing hybrid rendering
Chapter 8: Extended Reality with OpenXR
Getting started with OpenXR
How to implement single pass multiview rendering
Implementing static foveated rendering with a fragment density map
Retrieving eye gaze information from OpenXR in your app
Implementing dynamic foveated rendering using Qualcomm's fragment density map Offset extension
Using half floats to reduce memory load
Chapter 9: Debugging and Performance Measurement Techniques
Frame debugging
Naming Vulkan objects for easy debugging
Printing values from shaders in Vulkan
Intercepting validation layer messages
Retrieving debug information from shaders
Measuring performance in Vulkan with timestamp queries
Index
Other Books You May Enjoy.
Notes:
Description based upon print version of record.
How to do it...
ISBN:
9781803241470
1803241470
OCLC:
1427664219

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account