跳转到主要内容

Vulkan填坑学习Day02—Win10开发环境搭建

demi 提交于

上一篇:<a href="http://imgtec.eetrend.com/blog/2020/100052438.html"><u>Vulkan填坑学习Day01—框架综述</u></a>

<font color="#9a9a9a">本文转自CSDN,博主:沉默的舞台剧</font>

<strong>Vulkan 开发环境搭建之Windows</strong>

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>一、Vulkan 开发环境搭建 SDK</strong></font>

开发Vulkan应用程序所需的最重要的组件就是SDK。它包括核心头文件、标准的Validation layers及调试工具集、和驱动Loader,如果现在这些关键词不是很明白的话,不要紧,我会在后续的教程上向大家说明。

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

首先下载SDK,登录LunarG网站:官网 https://vulkan.lunarg.com/ , 选择Windows平台下的最新SDK下载安装,特别留意的是这个SDK包括了很多的内容,诸如Samples、Documents,这些资料非常有助于学习。

继续安装并注意SDK安装的位置,安装完成后我们首先验证您的PC 显卡驱动程序是否支持Vulkan,进入安装SDK的目录,打开Bin32目录运行vkcube.exe演示程序,您将会看到以下内容。

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

如果您收到了异常信息,请确保您的显卡驱动程序是最新的,且硬件驱动支持Vulkan运行时,具体细节可以到各显卡厂商官网确认。

此目录中还有另外一个程序对开发有价值,vulkaninfoSDK.exe查看Vulkan的相关参数

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

当然这里也有一个地址,可以查看显卡对VulkanSDK api版本的不同支持情况http://vulkan.gpuinfo.org/
glslangValidator.exe程序将用于将着色器从可读的GLSL编译为字节码。我们将在着色器模块一章中深入介绍这一点。 Bin32目录还包含Vulkan加载程序和验证层的二进制文件,而Lib32目录包含库。 Doc目录包含有关Vulkan SDK的有用信息以及整个Vulkan规范的脱机版本。最后,包含Vulkan头文件的Include目录。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>二、Vulkan 开发环境搭建 GLFW</strong></font>

Vulkan不包含用于创建窗口来渲染内容的工具,出于跨平台的考虑,Sample中使用了SDL来作为窗口系统的实现方案,本教程将使用GLFW库创建一个支持Windows的窗口,他的优势在于将Vulkan中的其他一些平台订制的内容抽象出来。

可以在GLFW官方 https://www.glfw.org/download.html 下载最新的版本 ,在本教程中我们将使用32位库(本机环境64位,但此处下载64位的话会出现各种莫名错误)。

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

下载后将头文件目录GLFW,静态库glfw3.lib、glfw3dll.lib、动态库glfw3.dll 分别放到VulkanSDK安装目录下的Third-Party的对应目录里。

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>三、Vulkan 开发环境搭建 GLM</strong></font>

Vulkan不包括用于数学计算的实用工具库,因此我们引入GLM库 ,该库专为图形API为设计,并且大量应用与OpenGL程序。

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

GLM仅包含一个头文件,所以只需要下载最新版本,同上文GLFW一样放置到VulkanSDK | Third-Part |Include 目录下即可。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>四、Vulkan 开发环境搭建</strong></font>
设置 Visual Studio(2017)

<strong>1. 新建工程及项目</strong>

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center>
<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

<strong>2. 设置工程属性</strong>

链接glm、glfw、vulkan头文件及lib静态库

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center>
<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

<strong>3. 运行测试</strong>

在新建的空项目main.cpp中添加如下代码,运行测试:

<pre>#define GLFW_INCLUDE_VULKAN
#include&lt;GLFW/glfw3.h&gt;

#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include &lt;glm/vec4.hpp&gt;
#include &lt;glm/mat4x4.hpp&gt;

#include &lt;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 &lt;&lt; extensionCount &lt;&lt;" extensions supported" &lt;&lt; std::endl;

glm::mat4 matrix;
glm::vec4 vec;
auto test = matrix * vec;

while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
}

glfwDestroyWindow(window);

glfwTerminate();

return 0;
}
</pre>

编译成功后,如出现下图后,恭喜你可以看到第一个Vulkan程序运行起来了。

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-04/%E5%8D%9A%E5%AE%A2/100090639-17…; alt=""></center><br>

<font color="#9a9a9a">版权声明:本文为博主 </font><a href="https://blog.csdn.net/qq_35312463"><u>沉默的舞台剧</u></a&gt; 原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。</font>
<font color="#9a9a9a">原文链接:</font><a href="https://blog.csdn.net/qq_35312463/article/details/103828074"><font color="#9a9a9a"><u>https://blog.csdn.net/qq_35312463/article/details/103828074</u></font><…;