Vulkan Programming Guide: The Official Guide to Learning Vulkan (OpenGL) (英語) ペーパーバック – 2016/11/10
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
The Definitive Vulkan™ Developer’s Guide and Reference: Master the Next-Generation Specification for Cross-Platform Graphics
The next generation of the OpenGL specification, Vulkan, has been redesigned from the ground up, giving applications direct control over GPU acceleration for unprecedented performance and predictability. Vulkan™ Programming Guide is the essential, authoritative reference to this new standard for experienced graphics programmers in all Vulkan environments.
Vulkan API lead Graham Sellers (with contributions from language lead John Kessenich) presents example-rich introductions to the portable Vulkan API and the new SPIR-V shading language. The author introduces Vulkan, its goals, and the key concepts framing its API, and presents a complex rendering system that demonstrates both Vulkan’s uniqueness and its exceptional power.
You’ll find authoritative coverage of topics ranging from drawing to memory, and threading to compute shaders. The author especially shows how to handle tasks such as synchronization, scheduling, and memory management that are now the developer’s responsibility.
Vulkan™ Programming Guide introduces powerful 3D development techniques for fields ranging from video games to medical imaging, and state-of-the-art approaches to solving challenging scientific compute problems. Whether you’re upgrading from OpenGL or moving to open-standard graphics APIs for the first time, this guide will help you get the results and performance you’re looking for.
- Extensively tested code examples to demonstrate Vulkan’s capabilities and show how it differs from OpenGL
- Expert guidance on getting started and working with Vulkan’s new memory system
- Thorough discussion of queues, commands, moving data, and presentation
- Full explanations of the SPIR-V binary shading language and compute/graphics pipelines
- Detailed discussions of drawing commands, geometry and fragment processing, synchronization primitives, and reading Vulkan data into applications
- A complete case study application: deferred rendering using complex multi-pass architecture and multiple processing queues
- Appendixes presenting Vulkan functions and SPIR-V opcodes, as well as a complete Vulkan glossary
Graham Sellers, API lead on the Vulkan specification, is AMD Software Architect and Engineering Fellow. Sellers represents AMD at the OpenGL ARB, has actively contributed to the core Vulkan and OpenGL specs and extensions, and holds several graphics and image processing patents. He coauthored OpenGL® Programming Guide, Ninth Edition.
Contributing author John Kessenich is language lead on the Vulkan specification and is Senior Compiler Architect at LunarG Inc. He been active in OpenGL, GLSL, Vulkan, and SPIR-V development in the OpenGL ARB and in Khronos since 1999. Kessenich created SPIR-V and is its specification editor. As GLSL specification editor, he creates shader compiler tools and translators for improving portability.
When I started with Vulkan a couple of months ago, this book wasn't out, so I read the spec and searched the web. This book would have helped me get to the same place, faster and with less pain.
From my perspective, it has two main shortcomings, The index feels very sparse; most of it consists of a listing of Vulkan API functions, with only a single page of topics that don't start with "Vk".
Secondly, I don't feel like my knowledge has been deepened by reading it. There are several topics that I managed to mostly learn before I received this book. When I consulted it to try fill gaps in my understanding, I was unsuccessful. For example, I was unable to find any discussion about "disturbing previously bound descriptor sets".
The book has an associated GitHub repository, which currently has no code. I may have to revise my rating after code is published there.
Overall, the book is well-written and approachable. I think that the second edition will probably be excellent: Vulkan is very new, and there hasn't been much time for Khronos to hear community feedback, to understand the topics that people will find difficult when mastering Vulkan. I'll probably buy it, despite already owning the first.
For now, this is probably the best starting point for someone who is serious about learning Vulkan.
Even if I am an expert on raster graphics I had a very hard time trying to figure out how to build an engine out of those APIs. I would definitely not recommend this book to anyone without a deep understanding of computer graphics and next generation graphics libraries.
If you already master DirectX 12 or had a chance to play with AMD's Mantle, then maybe this book can be helpful.
Update: After several months, still no code.
Update 2: 5 months later... still no code.
I bought this book because it was one of the first resources out, but now there are much better resources available. I would skip this an dlook elsewhere.