Vulkan 實戰 Vulkan Cookbook

Pawel Lapinski 蘇連印,蘇寶龍

  • 出版商: 電子工業
  • 出版日期: 2022-01-01
  • 售價: $1,194
  • 貴賓價: 9.5$1,134
  • 語言: 簡體中文
  • 頁數: 620
  • 裝訂: 平裝
  • ISBN: 7121424932
  • ISBN-13: 9787121424939
  • 相關分類: Vulkan
  • 此書翻譯自: Vulkan Cookbook
  • 立即出貨 (庫存 < 4)

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

商品描述

3D 圖形加速功能是 3D 應用程序的絕對關鍵點。實踐證明只有低層級的操作方式才能發揮出圖形硬件的全部潛能。接替 OpenGL 的 Vulkan 正是這種低層級 API。它可以給予開發者更多的硬件控制權,並使 3D 應用程序獲得更高的運行速度。本書詳細介紹了 Vulkan 的各種知識。本書由 12 章構成,其中包括:Vulkan API 的基礎知識、Vulkan 圖像顯示、命令緩沖區和同步化、資源和內存、描述符集合、渲染通道和幀緩沖區、著色器、圖形和計算管線、記錄命令和繪制操作、拾遺補缺、照明、高級渲染技術。

作者簡介

Pawel Lapinski 是一位圖形軟件工程師,就職於 Intel 公司。十多年前,Pawel Lapinski 和他的朋友們使用 C++、OpenGL 和 Cg 開發了一款 3D 培訓/模擬應用程序,這款軟件使用了頭盔式顯示器和立體成像等高端技術,至此開啟了他的職業生涯。當開始研究工作後,Pawel Lapinski 就專注於 3D 圖形技術,尤其對開放式的跨平台 OpenGL 庫感興趣。他撰寫了一部論述高效使用頂點和片段著色器的教程。至此之後,他就不斷謀求與 3D 圖形有關的工作機會,並擴展他在這一領域的知識。 Pawel Lapinski 有幸加入了一個優秀的開發小組,這個小組當時正在波蘭格但斯克科技大學開發一個當時**的類 CAVE 系統。 Pawel Lapinski 負責使用 Unity3D 引擎實現 3D 可視化功能,以及通過立體成像支持運動跟踪功能。 Pawel Lapinski 的整個職業生涯都在研究計算機圖形技術、OpenGL 庫和著色器。然而,在成為 Intel 公司的一名程序員後,他負責對 Vulkan 圖形驅動程序進行確認測試,因而獲得了研究 Vulkan 的機會。 Pawel Lapinski 編寫了一系列介紹如何使用 Vulkan 的教程,通過本書與讀者分享他掌握的 Vulkan 知識。


蘇寶龍,1999年畢業於遼寧石化大學計算機系,從事過計算機硬件維修、網絡和網站架設等計算機專業實踐工作。投身計算機圖書翻譯行業已有二十餘年,譯著三十餘部,包括《響應式架構:消息模式Actor實現與Scala、Akka應用集成》《Scala 並發編程》《PHP 7 編程實戰》等書。

目錄大綱

內容簡介
譯者序
作者簡介
致謝
審稿人簡介
前言
第1章Vulkan的基礎知識
本章主要內容
下載Vulkan的SDK
啟用驗證層
連接Vulkan Loader庫
加載Vulkan函數的準備工作
加載從Vulkan Loader庫導出的函數
加載全局級函數
檢查可用的實例擴展
創建Vulkan實例
加載實例級函數
確認哪些物理設備可用
檢查可用的設備擴展
獲取物理設備的功能和屬性信息
檢查可用隊列家族和它們的屬性
根據功能選擇隊列家族的索引
創建邏輯設備
加載設備級函數
獲取設備隊列
使用幾何著色器、圖形和計算隊列創建邏輯設備
銷毀邏輯設備
銷毀Vulkan實例
釋放Vulkan Loader庫
第2章Vulkan圖像顯示
本章主要內容
通過已啟用的WSI擴展創建Vulkan實例
創建顯示曲面
選擇支持顯示指定曲面功能的隊列家族
通過已啟用的WSI擴展創建邏輯設備
選擇顯示模式
獲取顯示曲面的功能
選擇交換鏈圖像
選擇交換鏈圖像的尺寸
選擇使用交換鏈圖像的場景
選擇轉換交換鏈圖像的方式
選擇交換鏈圖像的格式
創建交換鏈
獲取交換鏈圖像的句柄
通過R8G8B8A8格式和郵箱顯示模式(mailbox present mode)創建交換鏈
獲取交換鏈圖像
顯示圖像
銷毀交換鏈
銷毀顯示曲面
第3章命令緩衝區和同步化
本章主要內容
創建命令池
分配命令緩衝區
啟動命令緩衝區記錄操作
停止命令緩衝區記錄操作
重置命令緩衝區
重置命令池
創建信號
創建柵欄
等待柵欄
重置柵欄
將命令緩衝區提交給隊列
使兩個命令緩衝區同步
查明已提交命令緩衝區的處理過程是否已經結束
在提交給隊列的所有命令都被處理完之前等待
等待已提交的所有命令都被處理完
銷毀柵欄
銷毀信號
釋放命令緩衝區
銷毀命令池
第4章資源和內存
本章主要內容
創建緩衝區
為緩衝區分配內存對象並將它們綁定到一起
設置緩衝區內存屏障
創建緩衝區視圖
創建圖像
將內存對象分配給圖像並將它們綁定到一起
設置圖像內存屏障
創建圖像視圖
創建2D圖像和視圖
通過CUBEMAP視圖創建分層的2D圖像
映射、更新主機可見內存及移除主機可見內存的映射關係
在緩衝區之間複製數據
將數據從緩衝區復製到圖像
將數據從圖像複製到緩衝區
使用暫存緩衝區更新與設備本地內存綁定的緩衝區
使用暫存緩衝區更新與設備本地內存綁定的圖像
銷毀圖像視圖
銷毀圖像
銷毀緩衝區視圖
釋放內存對象
銷毀緩衝區
第5章描述符集合
本章主要內容
創建採樣器
創建已採樣的圖像
創建合併的圖像採樣器
創建倉庫圖像
創建統一紋素緩衝區
創建倉庫紋素緩衝區
創建統一緩衝區
創建倉庫緩衝區
創建輸入附著材料
創建描述符集合佈局
創建描述符池
分配描述符集合
更新描述符集合
綁定描述符集合
通過紋素和統一緩衝區創建描述符
釋放描述符集合
重置描述符池
銷毀描述符池
銷毀描述符集合佈局
銷毀採樣器
第6章渲染通道和幀緩衝區
本章主要內容
設置附著材料描述
設置子通道描述
設置子通道之間的依賴關係
創建渲染通道
創建幀緩衝區
為幾何渲染和後處理子通道準備渲染通道
通過顏色和深度附著材料準備渲染通道和幀緩衝區
啟動渲染通道
進入下一個子通道
停止渲染通道
銷毀幀緩衝區
銷毀渲染通道
第7章著色器
本章主要內容
將GLSL著色器轉換為SPIR-V程序
編寫頂點著色器
編寫細分曲面控制著色器
編寫細分曲面評估著色器
編寫幾何著色器
編寫片段著色器
編寫計算著色器
編寫通過將頂點位置乘以投影矩陣獲得新頂點位置的頂點著色器
在著色器中使用入棧常量
編寫紋理化的頂點和片段著色器
通過幾何著色器顯示多邊形的法線
第8章圖形和計算管線
本章主要內容
創建著色器模塊
設置管線著色器階段
設置管線頂點綁定關係描述、屬性描述和輸入狀態
設置管線輸入組合狀態
設置管線細分曲面狀態
設置管線視口和剪斷測試狀態
設置管線光柵化狀態
設置管線多重採樣狀態
設置管線深度和刻板狀態
設置管線混合狀態
設置管線動態狀態
創建管線佈局
設置圖形管線創建參數
創建管線緩存對象
通過管線緩存獲取數據
合併多個管線緩存對象
創建圖形管線
創建計算管線
綁定管線對象
通過合併的圖像採樣器、緩衝區和入棧常量範圍,創建管線佈局
創建含有頂點和片段著色器,並啟用了深度測試及動態視口和剪斷測試功能的圖形管線
在多個線程中創建多個圖形管線
銷毀管線
銷毀管線緩存對象
銷毀管線佈局
銷毀著色器模塊
第9章記錄命令和繪製操作
本章主要內容
清除顏色圖像
清除深度—刻板圖像
清除渲染通道附著材料
綁定頂點緩衝區
綁定索引緩衝區
通過入棧常量為著色器提供數據
通過動態方式設置視口狀態
通過動態方式設置剪斷狀態
通過動態方式設置線條寬度狀態
通過動態方式設置深度偏移狀態
通過動態方式設置混合常量狀態
繪製幾何圖形
繪製帶索引的幾何圖形
分配計算工作
在主要命令緩衝區的內部執行次要命令緩衝區
在命令緩衝區中記錄通過動態視口和剪斷狀態繪製幾何圖形的命令
通過多個線程向命令緩衝區中記錄命令
創建動畫中的單個幀
通過增加已渲染幀的數量提高性能
第10章拾遺補缺
本章主要內容
創建轉移矩陣
創建旋轉矩陣
創建縮放矩陣
創建透視投影矩陣
創建正交投影矩陣
從文件加載紋理數據
從OBJ文件加載3D模型
第11章照明
本章主要內容
通過頂點漫射照明渲染幾何圖形
通過片段鏡面反射照明渲染幾何圖形
通過法線貼圖渲染幾何圖形
使用立方體貼圖繪製反射和折射幾何圖形
向場景中添加陰影
第12章高級渲染技術
本章主要內容
繪製天空盒
使用幾何著色器繪製廣告牌
使用計算和圖形管線繪製微粒
渲染細化的地形
為進行後處理渲染四畫面全屏效果
對顏色糾偏後處理效果使用輸入附著材料