ADVERTISEMENT
如同引言所述,近來繪圖 API 往降低處理器負擔、且容易平行化處理方向開發。AMD 率先推出 Mantle 之後,Microsoft 跟著推出 DirectX 12,然後是 Apple 的 Metal,接著就換另外一方 OpenGL 勢力登場了。
目前 OpenGL 由多方組成的 Khronos Group 團隊開發,下一代 OpenGL 稱之為 glNext,旨在減少驅動程式對於處理器的負擔,提升整體繪圖效能。glNext 隨後被更為響亮的名字替代,稱之為 Vulkan(Vulcan 有火山、火神、冶煉之神的意思)。
Vulkan 作為 OpenGL 的接棒者,自然也是公開繪圖 API,可跨平台執行。除降低處理器負擔之外,手機到高階繪圖卡都是 Vulkan 的目標,不若過去 OpenGL 時代另外打造 OpenGL ES 供低階裝置使用。
Vulkan 將畫面上的繪圖命令打包成一塊塊的 Tile,當 Tile 內容有所變動時直接以 command buffer 置換,避免更新繪圖命令對處理器造成額外負擔,command buffer 同時也有助於多核心處理器的工作分配。
▲Imagination Technologies 利用自家 PowerVR Rogue 繪圖處理器進行 Vulkan 和 OpenGL EX 的效能比較,注意左下方的處理器負載量和分配情形。
目前行動裝置 Android 和 iOS 皆使用 OpenGL ES 作為繪圖 API,去年 Apple 另外推出針對自家 A7 之後應用處理器最佳化的 Metal API,而 Android 陣營則是到了 8 月 10 日才正式宣布,將支援下一代 Vulkan API。實際推出時程未定,且同時將會支援 OpenGL ES 和 Vulkan,交由程式設計師自行選用。
若是將 AMD Mantle 排除在外,目前 DirectX 12、Metal、Vulkan 這 3 種 API 進度最快的就是 Metal,已有 Asphalt 8、Plunder Pirates、Modern Combat 5 等遊戲採用,並於 App Store 上市。
資料來源
Low-overhead rendering with Vulkan
Gnomes per second in Vulkan and OpenGL ES
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!