原文鏈接 : vulkan-tutorial 。
本打算直接在Android上學習Vulkan,但奈何Android 上的資料實在是太少,也可能我的網被牆了沒找到。目前找到了一些sample code:GitHub ,也沒什麼教程,所以就打算先在PC上搞一陣子,畢竟PC上有這篇教程,熟悉之後再轉到Android。因爲公司工作機上是Windows 7系統,所以這裏重點強調Vulkan 在Windows下的配置,Linux下的壞境配置就不翻譯了,如果你恰好是在Linux下學習,請轉到原文查看配置過程。畢竟只是環境配置,我就意思一下,走個流程。
Windows
Vulkan SDK
SDK提供了標準的頭文件、Validation Layers 、debug 工具以及vulkan 函數的加載器等。請移步到: the LunarG website 下載適合自己平臺的SDK,然後安裝在自己的文件夾裏。安裝好後運行 bin32 文件夾下的cube.exe , 你將看到:出現上面這幅圖有兩種可能:(1) 未安裝最新的兼容驅動, 重新安裝驅動就行了。(2) 如果安裝了最新驅動仍然出現這種問題,說明你的顯卡不支持Vulkan,請換臺電腦。
這裏使用vs2013 或 vs2015 進行開發,Vulkan SDK的debug symbols 目前只和vs2013 兼容,如果特別在意這個,就使用2013,其他的,2013和2015 沒什麼差別(譯者注: 我使用的是2015 社區版)。
還需要下載兩個庫: glfw 和 glm ,glfw主要負責window 的創建,爲我們屏蔽平臺差異,glm 擁有線性代數庫和這種變換操作。下載後隨便你把它們放在哪裏,這裏是我的目錄:
glfw :
glm :
配置 VS:
創建win32 project
點擊Finish。
添加文件:
在main.cpp裏添加如下代碼:
<span style="font-size:18px;">#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;
}</span>
現在配置project 來解決出現的錯誤:
選擇 all configurations:
添加vulkan、glfw 和 glm 的頭文件:
接下來添加library:
在這裏添加 vulakn 和 glfw:
在input 裏添加lib:
vulkan 和 glfw 的lib:
按F5 運行測試一下看看:
每次都這樣配置是不是要累死人? 將這個工程變爲模板, File -> Export Template.... 選擇 template :
這樣就行了。 下次創建新的工程的時候就方便多了 :
選擇這個模板就行了。
Linux 就不講了。