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.
- 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.