Vulkan Tutorial 01 開發環境搭建之Windows

來源:互聯網
上載者:User

標籤:init   test   sdk   開發環境   sam   開發   color   官方下載   html   

作業系統:Windows8.1

顯卡:Nivida GTX965M

開發工具:Visual Studio 2017

相信很多人在開始學習Vulkan開發的起始階段都會在開發環境的配置上下一些功夫,那麼本問將會引導大家快速的完成Vulkan在Windows下的開發環境,並使用幾個常用的開發工具庫。

Vulkan SDK

開發Vulkan應用程式所需的最重要的組件就是SDK。它包括核心標頭檔、標準的Validation layers及調試工具集、和驅動Loader,如果現在這些關鍵詞不是很明白的話,不要緊,我會在後續的教程上向大家說明。

首先下載SDK,登入LunarG網站 the LunarG website ,選擇Windows平台下的最新SDK下載安裝,特別留意的是這個SDK包括了很多的內容,諸如Samples、Documents,這些資料非常有助於學習。

繼續安裝並注意SDK安裝的位置,安裝完成後我們首先驗證您的PC 顯卡驅動程式是否支援Vulkan,進入安裝SDK的目錄,開啟Bin32目錄運行cube.exe示範程式,您將會看到以下內容。

如果您收到了異常資訊,請確保您的顯卡驅動程式是最新的,且硬體驅動支援Vulkan運行時,具體細節可以到各顯卡廠商官網確認。

此目錄中還有另外兩個程式對開發有價值,vkjson_info.exe程式產生一個JSON檔案,並在使用Vulkan根據具體的硬體參數有選擇性的開啟功能。

當然這裡也有一個地址,可以查看顯卡對VulkanSDK api版本的不同支援情況。http://vulkan.gpuinfo.org/

glslangValidator.exe程式將用於將著色器從可讀的GLSL編譯為位元組碼。我們將在著色器模組一章中深入介紹這一點。 Bin32目錄還包含Vulkan載入程式和驗證層的二進位檔案,而Lib32目錄包含庫。 Doc目錄包含有關Vulkan SDK的有用資訊以及整個Vulkan規範的離線版本。最後,包含Vulkan標頭檔的Include目錄。

GLFW

 

Vulkan不包含用於建立視窗來渲染內容的工具,出於跨平台的考慮,Sample中使用了SDL來作為視窗系統的實現方案,本教程將使用GLFW庫建立一個支援Windows的視窗,他的優勢在於將Vulkan中的其他一些平台訂製的內容抽象出來。

可以在GLFW官方下載最新的版本 ,在本教程中我們將使用32位庫

下載後將標頭檔目錄GLFW,靜態庫glfw3.lib、glfw3dll.lib、動態庫glfw3.dll 分別放到VulkanSDK安裝目錄下的Third-Party的對應目錄裡。

 

GLM

Vulkan不包括用於數學計算的工具 + 生產力庫,因此我們引入GLM庫 ,該庫專為圖形API為設計,並且大量應用與OpenGL程式。

注,VulkanSDK中目前已經包含GLM在Third-Part | Include 目錄中。

GLM僅包含一個標頭檔,所以只需要下載最新版本,同上文GLFW一樣放置到VulkanSDK | Third-Part |Include 目錄下即可。

Setting up Visual Studio

從Vulkan模版中建立測試程式,注意在新項目建立完成後,Vulkan VS模版會自動建立一個基於SDL視窗的程式,在此可刪除掉 或替換為下文的測試代碼。

建立測試C++檔案,並添加如下測試代碼。

#define GLFW_INCLUDE_VULKAN#include <GLFW/glfw3.h>#define GLM_FORCE_RADIANS#define GLM_FORCE_DEPTH_ZERO_TO_ONE#include <glm/vec4.hpp>#include <glm/mat4x4.hpp>#include <iostream>int main() {    glfwInit();    glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);    GLFWwindow* window = glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr);    uint32_t extensionCount = 0;    vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);    std::cout << extensionCount << " extensions supported" << std::endl;    glm::mat4 matrix;    glm::vec4 vec;    auto test = matrix * vec;    while (!glfwWindowShouldClose(window)) {        glfwPollEvents();    }    glfwDestroyWindow(window);    glfwTerminate();    return 0;}

會遇到編譯錯誤GLFW,現在添加具體的庫引用。

再次運行程式,恭喜你可以看到第一個Vulkan程式運行起來了。

Vulkan Tutorial 01 開發環境搭建之Windows

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.