Vulkan是一種跨平台的2D和3D圖形應用程序接口,最早由Khronos組織在2015年GDC上發布。其本質上是AMD Mantle的後續版本,繼承了前者強大的低開銷架構,使開發人員能夠方便全面地獲取GPU與多核CPU的性能、功能和提升效率。
相比于OpenGL,Vulkan支持深入硬件底層進行控制,并能大幅度降低CPU在高負載繪制任務中的開銷。同時其對多核心CPU的支持也更加完善,更加适應當下從高端工作站到PC平台到移動平台的多核戰略。
Vulkan因為高性能和低開銷而大受歡迎,雖然面市不久,但市面上目前已有不少支持Vulkan的遊戲和應用,如《Doom》《Dota2》《極品飛車—無極限》等。
1.1 Vulkan概覽介紹具體的開發技術之前,本節将首先介紹Vulkan的曆史傳承以及一些技術特點,同時将Vulkan與其他的圖形應用程序接口(OpenGL、DirectX、Metal等)進行簡要的比較,最後還會介紹一下當下支持Vulkan的遊戲,具體内容如下。
1.1.1 Vulkan簡介了解Vulkan的具體知識之前,我們有必要首先了解一下市面上主流的各3D圖形應用程序接口。目前各平台下主流的3D圖形API有OpenGL、OpenGL ES、DirectX、Metal以及Vulkan,其各自的應用領域及特點如下。
Vulkan最早被稱為下一代OpenGL,項目名稱為GLNext。其設計考慮到了統一各個平台的開發,因此不像OpenGL與OpenGL ES那樣,根據硬件性能、供電區分不同版本,而是工作站、PC、移動嵌入式等平台完全一緻。這對廣大開發人員來說,是一個極大的利好。
2016年2月16日,Khronos組織發布了Vulkan的首個正式版本。從此,數字圖形技術産業誕生了一個真正意義上能與DirectX 12、Metal分庭抗禮的全新圖形應用程序接口。到2016年4月,Google在第二個Android N的開發預覽版中也正式加入了對Vulkan的支持。Vulkan的主要特點如下。
Vulkan本身博大精深,其革命性的設計遠遠不止上述這些,讀者可以跟随本書的腳步逐漸深入地學習Vulkan的方方面面。
1.1.2 支持Vulkan的遊戲概覽通過前面簡單的介紹,讀者已基本了解到Vulkan相比于傳統圖形應用程序接口的多項優勢。正因為Vulkan這些突出的特性,目前市面上已有幾款知名遊戲開始使用Vulkan。但由于Vulkan誕生的時間不長,故使用Vulkan的遊戲數量還不是很多。接下來,我們将對使用Vulkan的幾款遊戲進行簡單的介紹。
作為一款廣受玩家歡迎的巨作,早在2016年Dota 2便推出官方補丁使其支持Vulkan。如圖1-1所示為原版Dota 2的遊戲場景圖,圖1-2所示為在Vulkan支持下運行的Dota 2遊戲場景圖。
▲圖1-1 原版Dota 2遊戲場景
▲圖1-2 Vulkan支持下的Dota 2遊戲場景
說明
通過對比圖1-1、圖1-2可以看出,在遊戲畫面方面,Vulkan支持下的Dota 2較原版Dota 2場景更加逼真、細膩。在遊戲的實際對比測試中,可以感覺到Vulkan支持下的Dota 2運行更加流暢,并且可以觀察到CPU使用率更低,這正體現了Vulkan降低CPU開銷的特點。
- 極品飛車
通過對比Dota 2在使用Vulkan前後的場景畫面,我們已經觀察到了Vulkan在3D圖形處理方面的進步。接下來将通過展示Electronic Arts開發的賽車競技類遊戲“極品飛車:無極限”,進一步感受Vulkan的3D圖形處理能力,具體情況如圖1-3和圖1-4所示。
▲圖1-3 極品飛車:無極限場景1
▲圖1-4 極品飛車:無極限場景2
說明
可以看出上述兩幅使用Vulkan API渲染出的“極品飛車:無極限”遊戲場景畫面光影效果極其逼真,煙霧、運動模糊效果都很真實。
- Dream League Soccer
介紹完上述兩款支持Vulkan的遊戲Dota 2和極品飛車之後,不得不介紹First Touch開發的體育類遊戲——Dream League Soccer。該遊戲自發布以來一直廣受玩家的好評,現在更是推出了Vulkan版本,其效果分别如圖1-5和圖1-6所示。
▲圖1-5 Dream League Soccer場景1
▲圖1-6 Dream League Soccer場景2
通過對上述幾款遊戲畫面的觀察,我們可以領略到Vulkan在3D圖形處理方面的能力提升。前面的内容中,多次提到Vulkan的一大優勢是能夠大幅度降低渲染時的CPU開銷,這将直接影響遊戲運行及畫面的流暢度,有關權威組織對Vulkan這方面的測試也不少。
比如早在2016年Bethesda和Nvidia就進行了相關測試,測試結果表明使用DirectX 11在1080P分辨率下運行《毀滅戰士4》,平均幀率在55~60之間。之後,使用Vulkan進行同樣的渲染工作,整個遊戲幀率提升到了震撼的120以上,可見Vulkan在降低CPU開銷及圖形渲染等方面均效果顯著。
本書系統地介紹下一代OpenGL規範Vulkan,揭示了Vulkan的獨特性。本書主要内容包括:内存和資源、隊列和命令、數據的移動、圖像的展示、着色器和管線、圖形管線對象、繪制命令、幾何體的處理、片段的處理、同步、數據的回讀以及多渲染通道等。
本書适合圖形程序開發人員、熟悉圖形和計算API的程序員閱讀,也可供對Vulkan感興趣的專業人士閱讀。
京東網上商城 直達購買
程序員讀書會歡迎加入每日分享IT好書和不定期有獎活動
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!