Vulkan Programming Guide: The Official Guide to Learning Vulkan (Paperback)
暫譯: Vulkan 程式設計指南:學習 Vulkan 的官方指南 (平裝本)

Graham Sellers, John Kessenich

買這商品的人也買了...

商品描述

<About>

Features
Authoritative, trusted, and comprehensive coverage, straight from two of Vulkan's development team leads
Covers both the new portable Vulkan API and SPIR-V shading language
Enables developers to gain direct control over GPU acceleration for maximum performance and predictability
Helps developers create a wide spectrum of 3D applications, and solve challenging compute problems in science and engineering
Contains extensive new code examples throughout

<Description>

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.

Coverage includes

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

<Sample Content>

Table of Contents

Figures xiii

Tables xv

Listings xvii

About This Book xxi

Acknowledgments xxvii

About the Author xxix

Chapter 1: Overview of Vulkan 1

Introduction 2

Instances, Devices, and Queues 3

Object Types and Function Conventions 18

Managing Memory 19

Multithreading in Vulkan 20

Mathematical Concepts 21

Enhancing Vulkan 23

Shutting Down Cleanly 31

Summary 33

Chapter 2: Memory and Resources 35

Host Memory Management 36

Resources 41

Device Memory Management 73

Summary 93

Chapter 3: Queues and Commands 95

Device Queues 96

Creating Command Buffers 97

Recording Commands 101

Recycling Command Buffers 105

Submission of Commands 107

Summary 109

Chapter 4: Moving Data 111

Managing Resource State 112

Clearing and Filling Buffers 123

Clearing and Filling Images 125

Copying Image Data 128

Copying Compressed Image Data 132

Stretching Images 133

Summary 135

Chapter 5: Presentation 137

Presentation Extension 138

Presentation Surfaces 138

Swap Chains 143

Full-Screen Surfaces 152

Performing Presentation 159

Cleaning Up 162

Summary 163

Chapter 6: Shaders and Pipelines 165

An Overview of GLSL 166

An Overview of SPIR-V 169

Pipelines 175

Executing Work 186

Resource Access in Shaders 188

Summary 224

Chapter 7: Graphics Pipelines 225

The Logical Graphics Pipeline 226

Renderpasses 230

The Framebuffer 237

Creating a Simple Graphics Pipeline 240

Dynamic State 264

Summary 266

Chapter 8: Drawing 267

Getting Ready to Draw 268

Vertex Data 271

Indexed Draws 272

Instancing 280

Indirect Draws 281

Summary 286

Chapter 9: Geometry Processing 287

Tessellation 288

Geometry Shaders 309

Programmable Point Size 319

Line Width and Rasterization 321

User Clipping and Culling 324

The Viewport Transformation 331

Summary 335

Chapter 10: Fragment Processing 337

Scissor Testing 338

Depth and Stencil Operations 340

Multisample Rendering 350

Logic Operations 357

Fragment Shader Outputs 358

Color Blending 362

Summary 366

Chapter 11: Synchronization 367

Fences 368

Events 376

Semaphores 381

Summary 384

Chapter 12: Getting Data Back 387

Queries 388

Reading Data with the Host 398

Summary 400

Chapter 13: Multipass Rendering 401

Input Attachments 402

Attachment Contents 408

Secondary Command Buffers 420

Summary 423

Appendix: Vulkan Functions 425

Glossary 429

Index 443

商品描述(中文翻譯)

<關於>

**特色**
權威、可信賴且全面的內容,直接來自Vulkan開發團隊的兩位負責人
涵蓋全新的可攜式Vulkan API和SPIR-V著色語言
使開發者能夠直接控制GPU加速,以獲得最佳性能和可預測性
幫助開發者創建各種3D應用程式,並解決科學和工程中的挑戰性計算問題
包含大量新的程式碼範例

<描述>

**Vulkan™開發者指南與參考:掌握跨平台圖形的下一代規範**
OpenGL規範的下一代版本Vulkan,從根本上重新設計,讓應用程式能夠直接控制GPU加速,以實現前所未有的性能和可預測性。**Vulkan™程式設計指南**是這一新標準的基本權威參考,適合所有Vulkan環境中的經驗豐富的圖形程式設計師。

Vulkan API負責人Graham Sellers(語言負責人John Kessenich提供貢獻)提供了豐富範例的可攜式Vulkan API和新的SPIR-V著色語言的介紹。作者介紹了Vulkan、其目標以及構成其API的關鍵概念,並展示了一個複雜的渲染系統,展示了Vulkan的獨特性和卓越的能力。

您將找到從繪圖到記憶體、從執行緒到計算著色器的權威內容。作者特別展示了如何處理現在由開發者負責的任務,如同步、排程和記憶體管理。

**Vulkan™程式設計指南**介紹了從視頻遊戲到醫學影像等領域的強大3D開發技術,以及解決挑戰性科學計算問題的最先進方法。無論您是從OpenGL升級還是首次轉向開放標準圖形API,本指南將幫助您獲得所需的結果和性能。

涵蓋內容包括
經過廣泛測試的程式碼範例,以展示Vulkan的能力並顯示其與OpenGL的不同
有關如何開始使用Vulkan的新記憶體系統的專家指導
對佇列、命令、數據移動和呈現的徹底討論
SPIR-V二進位著色語言和計算/圖形管道的完整解釋
對繪圖命令、幾何和片段處理、同步原語以及將Vulkan數據讀入應用程式的詳細討論
完整的案例研究應用程式:使用複雜的多通道架構和多個處理佇列的延遲渲染
附錄介紹Vulkan函數和SPIR-V操作碼,以及完整的Vulkan詞彙表

<範例內容>

目錄
圖表 xiii
表格 xv
清單 xvii
關於本書 xxi
致謝 xxvii
關於作者 xxix
第1章:Vulkan概述 1
介紹 2
實例、設備和佇列 3
物件類型和函數約定 18
記憶體管理 19
Vulkan中的多執行緒 20
數學概念 21
增強Vulkan 23
正常關閉 31
摘要 33
第2章:記憶體和資源 35
主機記憶體管理 36
資源 41
設備記憶體管理 73
摘要 93
第3章:佇列和命令 95
設備佇列 96
創建命令緩衝區 97
記錄命令 101
回收命令緩衝區 105
命令提交 107
摘要 109
第4章:數據移動 111
管理資源狀態 112
清除和填充緩衝區 123
清除和填充圖像 125
複製圖像數據 128
複製壓縮圖像數據 132
拉伸圖像 133
摘要 135
第5章:呈現 137
呈現擴展 138
呈現表面 138
交換鏈 143
全螢幕表面 152
執行呈現 159
清理 162
摘要 163
第6章:著色器和管道 165
GLSL概述 166
SPIR-V概述 169
管道 175
執行工作 186
著色器中的資源訪問 188
摘要 224
第7章:圖形管道 225
邏輯圖形管道 226
渲染通道 230
幀緩衝區 237
創建簡單的圖形管道 240
動態狀態 264
摘要 266
第8章:繪圖 267
準備繪圖 268
頂點數據 271
索引繪製 272
實例化 280
間接繪製 281
摘要 286
第9章:幾何處理 287
細分 288
幾何著色器 309
可編程點大小 319
線寬和光柵化 321
用戶裁剪和剔除 324
視口變換 331
摘要 335
第10章:片段處理 337
剪刀測試 338
深度和模板操作 340
多重取樣渲染 350
邏輯操作 357
片段著色器輸出 358
顏色混合 362
摘要 366
第11章:同步 367
圍欄 368
事件 376
信號量 381
摘要 384
第12章:獲取數據 387
查詢 388
與主機讀取數據 398
摘要 400
第13章:多通道渲染 401
輸入附件 402
附件內容 408
次級命令緩衝區 420
摘要 423
附錄:Vulkan函數 425
詞彙表 429
索引 443