前言:
最近複習Vulkan,重打以前專案,每次都要比上一次更進步。
甚麼是CAMKE
CMake 是一個跨平臺的開源工具,用於管理軟體構建過程。它通過簡化編譯過程,使得開發者可以更輕鬆地生成可移植的構建腳本。更多可看
以前的文章。
甚麼是Vulkan
Vulkan 是一個高效能、跨平臺的圖形和計算 API(應用程式介面),由 Khronos Group 開發。它的設計目的是提供更直接的 GPU 控制,減少 CPU 負擔,並提高多核處理器的效能。
以下是 Vulkan 的一些主要特點:
1. 低開銷:Vulkan 提供了更低的 CPU 開銷,這意味著它能更有效地利用多核處理器。
2. 跨平臺:Vulkan 支援多種操作系統,包括 Windows、Linux、Android 等。
3. 高效能:Vulkan 能夠提供高效能的圖形渲染和計算能力,適用於遊戲開發和其他需要高效能圖形處理的應用。
4. 更好的多核處理:Vulkan 能夠更好地分配和管理多核處理器的資源,從而提高效能。
Vulkan 的設計目標是取代 OpenGL,並提供更現代化和高效的圖形處理能力。它的低開銷和高效能使其成為遊戲開發和其他需要高效能圖形處理的應用的理想選擇。
參考:
範例
本次以Vulkan開發專案當範例,展示CMake如何在多個dependency間進行開發。
命名此project
抓系統上的Vulkan SDK
原理:Vulkan SDK安裝完成後會自動新增環境變數如下,可在CMAKE用$ENV取得各個電腦上SDK路徑。
抓GLFW library路徑
我把glfw跟專案放在相關的資料夾下,如此只需要用專案的相對路徑就可以存取lib的內容。
搜尋soruce file
第一行會在 src 目錄及其所有子目錄中搜索所有 .cpp、.hpp 和 .h 文件,並將它們的路徑存儲在 SOURCES 變量中。第二行把這些檔案包裝成可執行檔。
處理include跟link library
注意最後一行每個lib都有自己的名稱寫法,目前我還不太確定在哪裡定義的。
範例Vulkan code
這段程式碼會打開一個空視窗,主要是用來檢查cmake程式有無正確打包成exe檔案。