tft每日頭條

 > 汽車

 > dota2為何這麼火

dota2為何這麼火

汽車 更新时间:2024-11-28 13:45:00

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,其各自的應用領域及特點如下。

  • OpenGL的應用領域較為廣泛,支持多種操作系統平台(如Windows、UNIX、Linux、macOS等)。基于其開發的應用可以方便、低成本地在不同操作系統平台之間移植。既可以用于開發遊戲,又可以用于開發工業、行業應用。
  • OpenGL ES是專門針對移動嵌入式平台而設計的,實際是OpenGL的剪裁版本。去除了OpenGL中許多不必要的特性,優化了對性能、供電受限的移動嵌入式平台的支持。
  • DirectX為微軟的專有技術,主要用于Windows下遊戲的開發,在此領域占有極高的比例。最新的版本為DirectX 12,此版本也是大大優化了對多核CPU的支持,但僅支持Windows 10。
  • Metal是Apple的專有技術,僅僅能夠在macOS以及iOS下使用,應用的領域相對比較狹窄,目前基于它的應用相對較少。
  • Vulkan與OpenGL類似,是跨平台的3D圖形應用程序接口,同時支持Windows 7、Windows 8.1、Windows 10、Linux以及Android等平台。

Vulkan最早被稱為下一代OpenGL,項目名稱為GLNext。其設計考慮到了統一各個平台的開發,因此不像OpenGL與OpenGL ES那樣,根據硬件性能、供電區分不同版本,而是工作站、PC、移動嵌入式等平台完全一緻。這對廣大開發人員來說,是一個極大的利好。

2016年2月16日,Khronos組織發布了Vulkan的首個正式版本。從此,數字圖形技術産業誕生了一個真正意義上能與DirectX 12、Metal分庭抗禮的全新圖形應用程序接口。到2016年4月,Google在第二個Android N的開發預覽版中也正式加入了對Vulkan的支持。Vulkan的主要特點如下。

  • Vulkan提供更低的運行開銷、更直接的GPU控制和較低的CPU負載。其通過批處理方式有效減少CPU的負載,将CPU從額外的運算和渲染中解放出來去執行其他的任務。
  • 相比于以往面向CPU單核心設計的OpenGL,Vulkan原生支持多線程并發處理,能夠更好地與當下普遍采用多核戰略的CPU協同工作。DirectX 12、Metal等廠商專有的新一代圖形應用程序接口也都在多線程并發方面提供了支持,可見這是業界發展的大趨勢。
  • 着色器方面,Vulkan也不再像OpenGL一樣指定高層的着色器編程語言(OpenGL指定采用GLSL着色器編程語言),而是采用一種被稱為SPIR-V(Standard Portable Intermediate Representation)的二進制中間層格式。這樣,開發人員在開發Vulkan着色器時可以選用自己青睐的着色器編程語言,諸如GLSL、HLSL等,然後将着色器源代碼采用着色器專用編譯器編譯為SPIR-V格式即可在Vulkan中使用,大大提高了靈活性。
  • Vulkan将計算任務和圖形着色渲染任務統一管理,無需使用單獨的計算和圖形應用程序接口進行連接。
  • 不同于OpenGL的狀态機,在運行任務時會自動進行各種錯誤檢查(不可關閉)。Vulkan為了追求更高的執行效率,将各種錯誤的檢查設計為可插拔模式。開發人員可以在開發調試時打開所需的錯誤檢查項目,在發布時關閉錯誤檢查項目,以達到更好的性能。
  • Vulkan在架構層面提供了對多輪渲染的支持,使得可以以更高的效率實現延遲渲染以在特定場景下大大提高渲染效率。

Vulkan本身博大精深,其革命性的設計遠遠不止上述這些,讀者可以跟随本書的腳步逐漸深入地學習Vulkan的方方面面。

1.1.2 支持Vulkan的遊戲概覽

通過前面簡單的介紹,讀者已基本了解到Vulkan相比于傳統圖形應用程序接口的多項優勢。正因為Vulkan這些突出的特性,目前市面上已有幾款知名遊戲開始使用Vulkan。但由于Vulkan誕生的時間不長,故使用Vulkan的遊戲數量還不是很多。接下來,我們将對使用Vulkan的幾款遊戲進行簡單的介紹。

  • Dota

作為一款廣受玩家歡迎的巨作,早在2016年Dota 2便推出官方補丁使其支持Vulkan。如圖1-1所示為原版Dota 2的遊戲場景圖,圖1-2所示為在Vulkan支持下運行的Dota 2遊戲場景圖。

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)1

▲圖1-1 原版Dota 2遊戲場景

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)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所示。

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)3

▲圖1-3 極品飛車:無極限場景1

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)4

▲圖1-4 極品飛車:無極限場景2

說明

可以看出上述兩幅使用Vulkan API渲染出的“極品飛車:無極限”遊戲場景畫面光影效果極其逼真,煙霧、運動模糊效果都很真實。

  • Dream League Soccer

介紹完上述兩款支持Vulkan的遊戲Dota 2和極品飛車之後,不得不介紹First Touch開發的體育類遊戲——Dream League Soccer。該遊戲自發布以來一直廣受玩家的好評,現在更是推出了Vulkan版本,其效果分别如圖1-5和圖1-6所示。

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)5

▲圖1-5 Dream League Soccer場景1

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)6

▲圖1-6 Dream League Soccer場景2

通過對上述幾款遊戲畫面的觀察,我們可以領略到Vulkan在3D圖形處理方面的能力提升。前面的内容中,多次提到Vulkan的一大優勢是能夠大幅度降低渲染時的CPU開銷,這将直接影響遊戲運行及畫面的流暢度,有關權威組織對Vulkan這方面的測試也不少。

比如早在2016年Bethesda和Nvidia就進行了相關測試,測試結果表明使用DirectX 11在1080P分辨率下運行《毀滅戰士4》,平均幀率在55~60之間。之後,使用Vulkan進行同樣的渲染工作,整個遊戲幀率提升到了震撼的120以上,可見Vulkan在降低CPU開銷及圖形渲染等方面均效果顯著。

dota2為何這麼火(DoomDota2極品飛車為什麼都用它)7

本書系統地介紹下一代OpenGL規範Vulkan,揭示了Vulkan的獨特性。本書主要内容包括:内存和資源、隊列和命令、數據的移動、圖像的展示、着色器和管線、圖形管線對象、繪制命令、幾何體的處理、片段的處理、同步、數據的回讀以及多渲染通道等。

本書适合圖形程序開發人員、熟悉圖形和計算API的程序員閱讀,也可供對Vulkan感興趣的專業人士閱讀。

京東網上商城 直達購買

程序員讀書會歡迎加入

每日分享IT好書和不定期有獎活動

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关汽車资讯推荐

热门汽車资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved