注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Vulkan學習指南

Vulkan學習指南

Vulkan學習指南

定 價:¥99.00

作 者: 帕敏德·辛格(Parminder Singh) 著,王銳 譯
出版社: 機械工業(yè)出版社
叢編項: 華章程序員書庫
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111647867 出版時間: 2020-04-01 包裝: 平裝
開本: 16開 頁數(shù): 332 字數(shù):  

內容簡介

  Vulkan是新一代的圖形和計算API,是Khronos推出的產品。該API繼承自OpenGL,為開發(fā)者提供了極大的靈活性與高性能。 本書將首先介紹Vulkan系統(tǒng)的基本原理,嘗試與硬件設備進行連接并查詢可用的隊列、內存類型,以及提供的功能。Vulkan很冗長,所以在深入編程之前,開發(fā)者需要首先理解相關的調試技巧,這樣即使是新手也可以使用Vulkan的層和擴展特性來排除一些常見錯誤。 通過閱讀本書,你將學到: ●學習Vulkan編程模型的基本知識,理解現(xiàn)代GPU設備的基本功能。 ●實現(xiàn)設備、指令緩存,以及隊列的功能,與物理硬件設備進行連接。 ●了解Vulkan中的驗證層概念,學習調試方法與技巧。 ●深入理解內存管理的知識,控制宿主機和設備端的內存操作。 ●理解和實現(xiàn)緩存與圖像資源的類型。使用線性和優(yōu)化類型的紋理。 ●定義渲染通道中的繪制操作,實現(xiàn)完整的圖形流水線。 ●通過SPIR-V管理GLSL著色器,使用描述符集和推送常數(shù)來更新著色器資源。 ●學習繪制的過程、同步資源,并通過交換鏈將3D場景渲染到屏幕上。

作者簡介

  帕敏德·辛格(Parminder Singh) 新加坡Blackmagic Design公司的計算機圖形學工程師。在過去的十年里,他一直致力于網絡模擬、幾何建模、導航、自動駕駛、信息娛樂系統(tǒng)、圖像處理及后期制作等領域的圖形學軟件開發(fā)。他的研究主要包括泛圖形的GPU編程、通用計算,平臺移植以及性能優(yōu)化技術。

圖書目錄

●第1章 開始學習新一代3D圖形API 1
1.1 Vulkan及其演化史1
1.2 Vulkan與OpenGL的對比2
1.3 重要術語4
1.4 Vulkan的原理5
1.4.1 Vulkan的執(zhí)行模型5
1.4.2 Vulkan的隊列6
1.4.3 對象模型7
1.4.4 對象生命周期與指令語法7
1.4.5 錯誤檢查與驗證8
1.5 理解Vulkan應用程序8
1.5.1 驅動8
1.5.2 應用程序9
1.5.3 WSI9
1.5.4 SPIR-V9
1.5.5 LunarG SDK9
1.6 開始學習Vulkan編程模型9
1.6.1 硬件初始化10
1.6.2 窗口展示表面11
1.6.3 資源設置12
1.6.4 流水線設置14
1.7 總結18

●第2章 你的第一個Vulkan偽代碼程序19
2.1 Vulkan的安裝19
2.2 Hello World偽代碼20
2.2.1 初始化—與設備握手的過程21
2.2.2 交換鏈初始化—查詢WSI擴展24
2.2.3 著色器支持—將著色器編譯到SPIR-V32
2.2.4 構建布局—描述符與流水線布局33
2.2.5 創(chuàng)建渲染通道—定義通道屬性34
2.2.6 幀緩存—將繪制圖像關聯(lián)到渲染通道35
2.2.7 產生幾何體—在GPU內存中保存一個頂點36
2.2.8 流水線狀態(tài)管理—創(chuàng)建流水線38
2.2.9 執(zhí)行渲染通道—顯示Hello World!!!41
2.2.10 隊列的提交和同步—發(fā)送任務43
2.2.11 使用展示層進行顯示—渲染三角形44
2.3 全部整合到一起45
2.4 總結46

●第3章 連接硬件設備47
3.1 學習使用LunarG SDK48
3.2 使用CMake設置我們的第一個工程49
3.3 擴展簡介53
3.4 創(chuàng)建一個Vulkan實例58
3.5 理解物理設備和邏輯設備65
3.5.1 物理設備65
3.5.2 邏輯設備69
3.6 理解隊列和隊列族71
3.6.1 查詢隊列族72
3.6.2 創(chuàng)建隊列74
3.7 整合設備和隊列的代碼76
3.8 總結78

●第4章 調試Vulkan程序80
4.1 初探Vulkan中的調試方法81
4.2 了解LunarG驗證層及其特性82
4.3 在Vulkan程序中實現(xiàn)調試83
4.4 總結90

●第5章 Vulkan中的指令緩存和內存管理91
5.1 開始使用指令緩存91
5.1.1 顯式同步92
5.1.2 指令緩存中的指令類型93
5.1.3 指令緩存與隊列94
5.2 理解指令池和指令緩存API94
5.2.1 創(chuàng)建指令池95
5.2.2 指令緩存的分配97
5.3 記錄指令緩存99
5.3.1 隊列提交100
5.3.2 隊列等待101
5.4 實現(xiàn)指令緩存的封裝類101
5.4.1 實現(xiàn)指令緩存的分配過程102
5.4.2 記錄指令緩存的分配過程103
5.4.3 提交指令到隊列104
5.5 管理Vulkan內存105
5.5.1 宿主機內存105
5.5.2 設備內存106
5.5.3 分配設備內存108
5.5.4 釋放設備內存110
5.5.5 從宿主機訪問設備內存110
5.5.6 延遲分配內存111
5.6 總結112

●第6章 圖像資源分配與交換鏈構建113
6.1 什么是圖像資源113
6.2 了解圖像資源116
6.2.1 創(chuàng)建圖像116
6.2.2 理解圖像的布局120
6.2.3 創(chuàng)建圖像視圖121
6.3 內存分配和圖像資源的綁定122
6.3.1 獲取內存分配的需求條件123
6.3.2 在設備端分配物理內存123
6.3.3 將分配的內存綁定到圖像對象124
6.4 交換鏈簡介124
6.4.1 了解交換鏈實現(xiàn)的工作流125
6.4.2 交換鏈實現(xiàn)類的框圖127
6.4.3 渲染器—窗口管理的自定義類127
6.4.4 VulkanSwapChain—交換鏈的管理類132
6.4.5 使用WSI創(chuàng)建表面并關聯(lián)到窗口135
6.4.6 支持畫面展示的圖形隊列137
6.4.7 查詢交換鏈的圖像格式138
6.4.8 創(chuàng)建交換鏈139
6.5 創(chuàng)建一個深度圖147
6.5.1 平鋪簡介147
6.5.2 創(chuàng)建深度緩存圖像對象149
6.5.3 獲取深度圖的內存需求150
6.5.4 判斷內存的類型151
6.5.5 將物理內存分配并綁定到深度圖像151
6.5.6 圖像布局變換152
6.5.7 圖像布局變換與內存屏障152
6.5.8 創(chuàng)建圖像視圖156
6.6 總結程序流程157
6.6.1 初始化157
6.6.2 渲染—顯示輸出窗口158
6.7 總結158

●第7章 緩存資源、渲染通道、幀緩存以及SPIR-V著色器160
7.1 理解Vulkan的緩存資源類型161
7.1.1 創(chuàng)建緩存資源對象161
7.1.2 創(chuàng)建緩存視圖162
7.2 使用緩存資源創(chuàng)建幾何體164
7.2.1 準備幾何體數(shù)據(jù)164
7.2.2 創(chuàng)建頂點緩存164
7.2.3 緩存創(chuàng)建概述165
7.2.4 實現(xiàn)一個緩存資源—創(chuàng)建幾何體的頂點緩存166
7.2.5 理解代碼流線169
7.3 理解渲染通道171
7.3.1 附件171
7.3.2 子通道172
7.3.3 渲染通道對應的Vulkan API172
7.3.4 實現(xiàn)渲染通道176
7.4 使用渲染通道來創(chuàng)建幀緩存179
7.5 清除背景顏色182
7.5.1 設置渲染通道實例的背景顏色183
7.5.2 渲染顏色背景185
7.6 在Vulkan中實現(xiàn)著色器186
7.6.1 SPIR-V簡介187
7.6.2 將GLSL著色器編譯為SPIR-V188
7.6.3 實現(xiàn)著色器190
7.7 總結197

●第8章 流水線和流水線狀態(tài)管理199
8.1 開始學習流水線199
8.2 通過PCO緩沖流水線對象203
8.2.1 創(chuàng)建流水線緩沖對象203
8.2.2 合并流水線緩沖204
8.2.3 從流水線緩沖獲取數(shù)據(jù)205
8.2.4 實現(xiàn)PCO206
8.3 創(chuàng)建圖形流水線207
8.3.1 實現(xiàn)圖形流水線209
8.3.2 銷毀流水線211
8.4 理解計算流水線211
8.5 Vulkan的流水線狀態(tài)對象213
8.5.1 動態(tài)狀態(tài)214
8.5.2 頂點輸入狀態(tài)216
8.5.3 輸入裝配狀態(tài)217
8.5.4 光柵化224
8.5.5 融混226
8.5.6 視口管理229
8.5.7 深度測試和模板測試230
8.5.8 多重采樣狀態(tài)232
8.6 實現(xiàn)流水線235
8.7 總結237

●第9章 繪制對象238
9.1 概述Vulkan中的繪制過程238
9.2 準備繪制對象240
9.2.1 錄制渲染通道指令240
9.2.2 綁定流水線對象244
9.2.3 設置繪制對象的幾何體信息245
9.2.4 定義動態(tài)視口246
9.2.5 裁切248
9.2.6 繪制指令249
9.2.7 可繪制對象的準備過程250
9.3 渲染當前可繪制對象252
9.3.1 獲取交換鏈圖像253
9.3.2 執(zhí)行繪制的指令緩存對象254
9.3.3 使用展示引擎顯示輸出內容254
9.3.4 實現(xiàn)可繪制對象的渲染256
9.4 渲染索引幾何體259
9.5 理解Vulkan中的同步圖元262
9.5.1 柵欄262
9.5.2 信號量265
9.5.3 事件266
9.6 改變顯示窗口的大小269
9.7 總結271

●第10章 描述符與推送常數(shù)273
10.1 理解描述符的概念273
10.2 如何在Vulkan中實現(xiàn)一致變量292
10.3 推送常數(shù)的更新299
10.4 總結304

●第11章 繪制紋理305
11.1 圖像資源快速回顧305
11.2 紋理繪制的準備工作306
11.4 使用優(yōu)化平鋪實現(xiàn)圖像資源322
11.5 在圖像和緩存之間復制數(shù)據(jù)329
11.6 更新描述符集330
11.7 總結332

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.leeflamesbasketballcamps.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號