My Account Log in

3 options

Vulkan cookbook : work through recipes to unlock the full potential of the next generation graphics API-Vulkan.

EBSCOhost Academic eBook Collection (North America) Available online

View online

Ebook Central College Complete Available online

View online

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

View online
Format:
Book
Author/Creator:
Lapinski, Pawel.
Language:
English
Subjects (All):
Vulkan graphics programme.
Computer graphics.
Three-dimensional modeling.
Three-dimensional imaging.
Physical Description:
1 online resource (662 pages) : illustrations (some colour)
Edition:
1st ed.
Place of Publication:
Birmingham : Packt Publishing, 2017.
System Details:
Mode of access: World Wide Web.
Summary:
Work through recipes to unlock the full potential of the next generation graphics API—VulkanKey Features[*] This book explores a wide range of modern graphics programming techniques and GPU compute methods to make the best use of the Vulkan API[*] Learn techniques that can be applied to a wide range of platforms desktop, smartphones, and embedded devices[*] Get an idea on the graphics engine with multi-platform support and learn exciting imaging processing and post-processing techniquesBook DescriptionVulkan is the next generation graphics API released by the Khronos group. It is expected to be the successor to OpenGL and OpenGL ES, which it shares some similarities with such as its cross-platform capabilities, programmed pipeline stages, or nomenclature. Vulkan is a low-level API that gives developers much more control over the hardware, but also adds new responsibilities such as explicit memory and resources management. With it, though, Vulkan is expected to be much faster. This book is your guide to understanding Vulkan through a series of recipes. We start off by teaching you how to create instances in Vulkan and choose the device on which operations will be performed. You will then explore more complex topics such as command buffers, resources and memory management, pipelines, GLSL shaders, render passes, and more. Gradually, the book moves on to teach you advanced rendering techniques, how to draw 3D scenes, and how to improve the performance of your applications. By the end of the book, you will be familiar with the latest advanced techniques implemented with the Vulkan API, which can be used on a wide range of platforms.What you will learn[*] Work with Swapchain to present images on screen[*] Create, submit, and synchronize operations processed by the hardware[*] Create buffers and images, manage their memory, and upload data to them from CPU[*] Explore descriptor sets and set up an interface between application and shaders[*] Organize drawing operations into a set of render passes and subpasses[*] Prepare graphics pipelines to draw 3D scenes and compute pipelines to perform mathematical calculations[*] Implement geometry projection and tessellation, texturing, lighting, and post-processing techniques[*] Write shaders in GLSL and convert them into SPIR-V assemblies[*] Find out about and implement a collection of popular, advanced rendering techniques found in games and benchmarksWho this book is forThis book is ideal for developers who know C/C++ languages, have some basic familiarity with graphics programming, and now want to take advantage of the new Vulkan API in the process of building next generation computer graphics. Some basic familiarity of Vulkan would be useful to follow the recipes. OpenGL developers who want to take advantage of the Vulkan API will also find this book useful.
Contents:
Cover
Copyright
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Table of Contents
Preface
Chapter 1: Instance and Devices
Introduction
Downloading Vulkan's SDK
Getting ready
How to do it...
How it works...
See also
Enabling validation layers
Connecting with a Vulkan Loader library
Preparing for loading Vulkan API functions
Loading functions exported from a Vulkan Loader library
Loading global-level functions
Checking available Instance extensions
Creating a Vulkan Instance
Loading instance-level functions
Enumerating available physical devices
Checking available device extensions
Getting features and properties of a physical device
Checking available queue families and their properties
Selecting the index of a queue family with the desired capabilities
Creating a logical device
Loading device-level functions
Getting a device queue
See also.
Creating a logical device with geometry shaders, graphics, and compute queues
Destroying a logical device
Destroying a Vulkan Instance
Releasing a Vulkan Loader library
Chapter 2: Image Presentation
Creating a Vulkan Instance with WSI extensions enabled
Creating a presentation surface
Selecting a queue family that supports presentation to a given surface
Creating a logical device with WSI extensions enabled
Selecting a desired presentation mode
Getting the capabilities of a presentation surface
Selecting a number of swapchain images
Choosing a size of swapchain images
Selecting desired usage scenarios of swapchain images
Selecting a transformation of swapchain images
Selecting a format of swapchain images
Creating a swapchain
Getting handles of swapchain images
Creating a swapchain with R8G8B8A8 format and a mailbox present mode
Acquiring a swapchain image.
Getting ready
Presenting an image
Destroying a swapchain
Destroying a presentation surface
Chapter 3: Command Buffers and Synchronization
Creating a command pool
Allocating command buffers
Beginning a command buffer recording operation
Ending a command buffer recording operation
Resetting a command buffer
Resetting a command pool
Creating a semaphore
Creating a fence
Waiting for fences
Resetting fences
Submitting command buffers to a queue
Synchronizing two command buffers
Checking if processing of a submitted command buffer has finished
Waiting until all commands submitted to a queue are finished
Waiting for all submitted commands to be finished
Destroying a fence
Destroying a semaphore
Freeing command buffers
Destroying a command pool
Chapter 4: Resources and Memory
Creating a buffer
Allocating and binding a memory object for a buffer
There's more...
Setting a buffer memory barrier
Creating a buffer view
Creating an image
Allocating and binding a memory object to an image
Setting an image memory barrier
Creating an image view
Creating a 2D image and view
Creating a layered 2D image with a CUBEMAP view
Mapping, updating and unmapping host-visible memory
Copying data between buffers
Copying data from a buffer to an image
Copying data from an image to a buffer
Using a staging buffer to update a buffer with a device-local memory bound
Using a staging buffer to update an image with a device-local memory bound
Destroying an image view
Destroying an image.
How to do it...
Destroying a buffer view
Freeing a memory object
Destroying a buffer
Chapter 5: Descriptor Sets
Creating a sampler
Creating a sampled image
Creating a combined image sampler
Creating a storage image
Creating a uniform texel buffer
Creating a storage texel buffer
Creating a uniform buffer
Creating a storage buffer
Creating an input attachment
Creating a descriptor set layout
Creating a descriptor pool
Allocating descriptor sets
Updating descriptor sets
Binding descriptor sets
Creating descriptors with a texture and a uniform buffer
Freeing descriptor sets
Resetting a descriptor pool
Destroying a descriptor pool
Destroying a descriptor set layout
How to do it.
How it works.
Notes:
Includes index.
Includes bibliographical references and index.
ISBN:
9781786464705
1786464705
OCLC:
988029252

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.

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Library Catalog Using Articles+ Library Account