原文链接 : 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 就不讲了。