《Vulkan套用開發指南》是2019年11月人民郵電出版社出版的圖書,作者是[美]格拉漢姆·塞勒斯(Graham Sellers)、約翰·克賽尼希(John Kessenich)。
基本介紹
- 中文名:Vulkan套用開發指南
- 作者:[美]格拉漢姆·塞勒斯(Graham Sellers)、約翰·克賽尼希(John Kessenich)
- 出版時間:2019年11月
- 出版社:人民郵電出版社
- 頁數:327 頁
- ISBN:9787115506801
- 定價:89 元
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
本書系統地介紹下一代OpenGL規範Vulkan,揭示了Vulkan的獨特性。本書主要內容包括:記憶體和資源、佇列和命令、數據的移動、圖像的展示、著色器和管線、圖形管線對象、繪製命令、幾何體的處理、片段的處理、同步、數據的回讀以及多渲染通道等。
本書適合圖形程式開發人員、熟悉圖形和計算API的程式設計師閱讀,也可供對Vulkan感興趣的專業人士閱讀。
圖書目錄
第 1章 Vulkan概述 1
1.1 引言 1
1.2 實例、設備和佇列 2
1.2.1 Vulkan實例 3
1.2.2 Vulkan物理設備 5
1.2.3 物理設備記憶體 8
1.2.4 設備佇列 9
1.2.5 創建邏輯設備 11
1.3 對象類型和函式約定 14
1.4 管理記憶體 14
1.5 Vulkan里的多執行緒 15
1.6 數學概念 16
1.6.1 向量和矩陣 16
1.6.2 坐標系 17
1.7 增強Vulkan 17
1.7.1 層 17
1.7.2 擴展 20
1.8 徹底地關閉應用程式 23
1.9 總結 24
第 2章 記憶體和資源 25
2.1 主機記憶體管理 25
2.2 資源 30
2.2.1 緩衝區 31
2.2.2 格式和支持 33
2.2.3 圖像 36
2.2.4 資源視圖 46
2.2.5 銷毀資源 52
2.3 設備記憶體管理 53
2.3.1 分配設備記憶體 54
2.3.2 CPU訪問設備記憶體 56
2.3.3 綁定記憶體到資源上 59
2.3.4 稀疏資源 62
2.4 總結 68
第3章 佇列和命令 69
3.1 設備佇列 69
3.2 創建命令緩衝區 71
3.3 記錄命令 73
3.4 回收利用命令緩衝區 76
3.5 命令的提交 77
3.6 總結 79
第4章 移動數據 80
4.1 管理資源狀態 81
4.1.1 管線屏障 81
4.1.2 全局記憶體屏障 83
4.1.3 緩衝區記憶體屏障 86
4.1.4 圖像記憶體屏障 87
4.2 清除和填充緩衝區 89
4.3 清空和填充圖像 90
4.4 複製圖像數據 92
4.5 複製壓縮圖像數據 96
4.6 拉伸圖像 97
4.7 總結 98
第5章 展示 99
5.1 展示擴展 99
5.2 展示表面 100
5.2.1 在微軟的Windows上展示 100
5.2.2 在基於Xlib的平台上展示 101
5.2.3 在Xcb上展示 102
5.3 交換鏈 103
5.4 全螢幕表面 110
5.5 執行展示 115
5.6 清除 117
5.7 總結 118
第6章 著色器和管線 119
6.1 GLSL概述 120
6.2 SPIR-V概述 122
6.2.1 如何表示SPIR-V 122
6.2.2 把SPIR-V傳遞給Vulkan 125
6.3 管線 126
6.3.1 計算管線 126
6.3.2 創建管線 127
6.3.3 特化常量 128
6.3.4 加速管線的創建 131
6.3.5 綁定管線 134
6.4 執行工作 135
6.5 在著色器中訪問資源 136
6.5.1 描述符集 136
6.5.2 綁定資源到描述符集 145
6.5.3 綁定描述符集 150
6.5.4 uniform、紋素和存儲
緩衝區 151
6.5.5 推送常量 154
6.5.6 採樣圖像 157
6.6 總結 162
第7章 圖形管線 163
7.1 邏輯圖形管線 163
7.2 渲染通道 166
7.3 幀緩衝區 172
7.4 創建一個簡單的圖形管線 174
7.4.1 圖形著色器階段 175
7.4.2 頂點輸入狀態 179
7.4.3 輸入組裝 183
7.4.4 細分狀態 186
7.4.5 視口狀態 187
7.4.6 光柵化狀態 188
7.4.7 多重採樣狀態 190
7.4.8 深度和模板狀態 190
7.4.9 顏色混合狀態 191
7.5 動態狀態 193
7.6 總結 195
第8章 繪製 196
8.1 準備繪製 197
8.2 頂點數據 199
8.3 索引繪製 200
8.3.1 只用索引的繪製 204
8.3.2 重置索引 205
8.4 實例化 206
8.5 間接繪製 208
8.6 總結 211
第9章 幾何體處理 212
9.1 表面細分 212
9.1.1 表面細分配置 213
9.1.2 表面細分相關變數 218
9.1.3 表面細分示例:置換貼圖 225
9.2 幾何著色器 229
9.2.1 圖元裁剪 235
9.2.2 幾何著色器實例化 236
9.3 可程式頂點尺寸 237
9.4 線的寬度以及光柵化 239
9.5 用戶裁剪和剔除 241
9.6 視口變換 247
9.7 總結 250
第 10章 片段處理 251
10.1 裁剪測試 251
10.2 深度和模板測試 253
10.2.1 深度測試 254
10.2.2 模板測試 258
10.2.3 早期片段測試 259
10.3 多重採樣渲染 260
10.3.1 採樣率著色 262
10.3.2 多重採樣解析 263
10.4 邏輯操作 264
10.5 片段著色器輸出 266
10.6 顏色混合 269
10.7 總結 271
第 11章 同步 272
11.1 柵欄 273
11.2 事件 279
11.3 信號量 282
11.4 總結 285
第 12章 回讀數據 286
12.1 查詢 286
12.1.1 執行查詢 288
12.1.2 計時查詢 293
12.2 通過主機讀取數據 294
12.3 總結 295
第 13章 多通道渲染 296
13.1 輸入附屬檔案 297
13.2 附屬檔案內容 303
13.2.1 附屬檔案的初始化 303
13.2.2 渲染區域 305
13.2.3 保存附屬檔案內容 306
13.3 副命令緩衝區 313
13.4 總結 315
附錄A Vulkan函式 316
辭彙表 318