vulkan第一天

 

2019-11-05

從今天起每天堅持學習圖形學api

要學習的第一種爲vulkan

通過網站http://geek-docs.com/vulkan/vulkan-tutorial/vulkan-tutorial-index.html並結合vulkan應用開發指南

本文主要寫自己在學習的過程中的所見、所學、所思。

Vulkan是一個用於圖形和計算設備的編程接口Vulkan是一個跨平臺的2D和3D繪圖應用程序接口(API),最早由科納斯組織在2015年遊戲開發者大會(GDC)上發表。科納斯最先把VulkanAPI稱爲“次世代OpenGL行動”(next generation OpenGL initiative)或“glNext”,但在正式宣佈Vulkan之後這些名字就沒有再使用了。就像OpenGL,Vulkan針對實時3D程序(如電子遊戲)設計,Vulkan並計劃提供高性能和低CPU管理負擔(overhead),這也是Direct3D12和 AMD 的 Mantle 的目標。Vulkan兼容 Mantle 的一個分支,並使用了 Mantle 的一些組件。(這一段複製來的)

爲什麼vulkan的速度快,但是應用難度加大?

因爲:

Vulkan設備通常由一個處理器和一定數量的固定功能硬件模塊組成,用於加速圖形和計算操作。通常,設備中的處理器是高度線程化的,所以在極大程度上Vulkan裏的計算模型是基於並行計算的。Vulkan還可以訪問運行應用程序的主處理器上的共享或非共享內存。Vulkan也會給開發人員提供這個內存。

Vulkan是個顯式的API,也就是說,幾乎所有的事情你都需要親自負責。驅動程序是一個軟件,用於接收API調用傳遞過來的指令和數據,並將它們進行轉換,使得硬件可以理解。在老的API(例如OpenGL)裏,驅動程序會跟蹤大量對象的狀態,自動管理內存和同步,以及在程序運行時檢查錯誤。這對開發人員非常友好,但是在應用程序經過調試並且正確運行時,會消耗寶貴的CPU性能。Vulkan解決這個問題的方式是,將狀態跟蹤、同步和內存管理交給了應用程序開發人員,同時將正確性檢查交給各個層進行代理,而要想使用這些層必須手動啓用。這些層在正常情況下不會在應用程序裏執行。

vulkan做了什麼?

答:Vulkan的當前版本定義了傳輸類別——用於複製數據;計算類別——用於運行着色器進行計算工作;圖形類別——包括光柵化、圖元裝配、混合、深度和模板測試,以及圖形程序員所熟悉的其他功能。Vulkan設備對每個分類的支持都是可選的,甚至可以根本不支持圖形。因此,將圖像顯示到適配器設備上的API(這個過程叫作展示)不但是可選擇的功能,而且是擴展功能,而不是核心API。

這是vulkan的第一天,明天看vulkan環境的搭建。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章