原文網址 : https://vulkan-tutorial.com
這是一篇告訴你如何使用Vulkan 圖形(Graphics)和計算(Compute)API 基礎的教程。Vulkan是一個來自 Khronos group的新的圖形API,它使你能更好的定位自己應用的目的,它爲你的應用帶來更高的性能,和現存的API( OPengl 和 Direct3D )相比,Vulkan 具有更少的不確定行爲。Vulkan的思想和Dirext3D 以及Metal 十分相似,但Vulkan是跨平臺的,它使你能夠在Windows、Linux和Android上同時進行開發。
爲了獲得這些優點,你必須忍受Vulkan冗長的API,你必須從零開始創建各種東西,包括初始化buffer以及內存管理等。實際上,驅動爲你做了很少的事情,所有的工作你必須手動完成,以保證應用的正確運行。
隨便提一句,Vulkan並不適合所有人,它是爲那些對高性能計算機圖形具有崇高熱情並樂意爲之工作的人而準備的。如果你更喜歡遊戲開發而非計算機圖形,Opengl 和Direct3D 已經可以滿足你的要求了。
學習這篇教程的先決條件:
(1)擁有個顯卡且驅動要和Vulkan兼容(NVIDIA, AMD, Intel)
(2)擁有C++ 編程經驗(熟悉RAII等)
(3)一個編譯器(vs2013+ ,GCC4.8+)
(4)具有3D圖形學編程經驗
這篇教程不會講解Opengl 和 Direct3D 基礎,但你確實需要了解3D計算機圖形學基礎,例如,這裏不會爲你講解透視投影的數學基礎,你可以看看這本書 this online book 來做相關的瞭解。
我們先在屏幕上畫一個三角形來告訴你Vulkan是如何工作的。如果你瞭解每一步在整個工作中角色,就會發現它們都非常有意義。
每一章的結構:
(1)引入一個新的概念以及它的作用。
(2)使用相關的API 調用,將它們集成在你的程序中。
(3)抽取那些通用的部分,將它們組織在一個工具函數中。
本教程的目的是想形成一個社區,以便可以討論和交流問題。正像之前提到的,Vulkan是一個新生的API,它還缺少很多實踐,如果你有任何問題和反饋,請提交到: GitHub repository 或 this Khronos repository.
準備好一頭扎入未來高性能的圖形API了?那我們開始吧。