VS2022配置Vulkan环境

内容摘要:

本章详细介绍如何在Visual Studio 2022中配置 Vulkan环境并运行Vulkan程序,并给出配置环境过程中部分问题的解决办法。

目录

一、关于Vulkan

二、开发环境

三、下载Vulkan SDK

四、下载GLFW库

五、下载GLM SDK

​六、配置项目属性

一、关于Vulkan

Vulkan 是一种现代化的图形和计算 API,由 Khronos Group 推出,专为高性能、低开销的 GPU 使用而设计。作为 OpenGL 的后继者,Vulkan 旨在通过提供更接近硬件的访问方式来优化资源利用率,使得开发者能够更好地控制内存、同步和渲染流程。

Vulkan 的主要特点包括:

  1. 低开销和高性能:Vulkan 大幅减少了 CPU 和 GPU 之间的驱动程序开销,允许并行提交渲染命令,最大化 GPU 的工作效率。这种优化对多核 CPU 尤其友好,适合渲染复杂的大型场景。

  2. 多线程支持:Vulkan 原生支持多线程,可以在多个 CPU 核心上并行提交渲染指令,从而大幅提升多核处理器的利用率,尤其适用于游戏和图形密集型应用。

  3. 跨平台兼容:Vulkan 支持多种平台,包括 Windows、Linux、macOS(通过 MoltenVK)和 Android。这种跨平台能力方便开发者更容易地将应用程序移植到不同的操作系统上。

  4. 高控制和灵活性:Vulkan 提供精细的内存和资源管理,开发者需手动分配和管理资源。虽然增加了开发难度,但允许更精确的硬件控制,适用于对性能和资源利用有严格要求的应用。

  5. 统一图形与计算 API:Vulkan 不仅适用于图形渲染,还支持通用计算任务。这一特点使得 Vulkan 成为一个通用 API,可以在同一程序中处理图形和计算,应用广泛。

Vulkan 的应用领域:

由于其优异的性能和控制能力,Vulkan 广泛应用于高性能游戏、虚拟现实(VR)、增强现实(AR)、科学计算和数据可视化等领域。尤其在移动设备和嵌入式系统中,Vulkan 的低开销特性使得它可以在功耗受限的环境中提供出色的图形表现。此外,Vulkan 的跨平台特性使得开发者能够轻松开发面向不同平台的高性能应用。

二、开发环境

1.操作系统:Win10/Win11

2.开发工具:Visual Studio 2022

3.笔者显卡:NVIDIA GeForce GTX1650

4.开发语言:C++

三、下载Vulkan SDK

下载网址:https://vulkan.lunarg.com/

 进入网址,点击Windows图标。

进入后点击VulkanSDK-1.3.296.0-Installer.exe

(本篇写于2024年11月,以下载最新版1.3.296.0为例)

 下载成功以后在文件夹中双击VulkanSDK-1.3.296.0-Installer.exe进行安装,如下图所示。

笔者将安装文件夹命名为VulkanSDK(建议为空文件夹)

 进入“选择组件”部分,在这一步根据自己需要安装组件

 各组件详细作用介绍:

1. SDK 32-bit Core Components:

这是 Vulkan SDK 中的 32 位核心组件,包含基础的库和头文件,支持在 32 位系统上开发 Vulkan 应用。虽然现代开发主要针对 64 位系统,但这些 32 位核心组件对支持旧系统或兼容性测试可能仍然有用。

2. Shader Toolchain Debug Symbols:
这些是着色器工具链的调试符号文件,用于调试编译的着色器代码。当着色器编译为 SPIR-V 代码时,调试符号文件可以帮助开发者识别和修复着色器中的问题。调试符号文件包含可读性信息,如变量名和代码结构,使调试更直观。

3. GLM Headers:
GLM (OpenGL Mathematics)是一个 C++ 数学库,专门用于图形开发,基于 GLSL(OpenGL Shading Language)语法构建。GLM 提供了线性代数计算所需的矩阵和向量运算,简化了 3D 图形变换和着色器数据操作。它是跨平台的轻量库,便于在 Vulkan 应用中处理数学计算。

4. SDL2 Libraries and Headers:
SDL2 (Simple DirectMedia Layer 2)是一个跨平台的多媒体库,广泛用于游戏和多媒体应用开发。SDL2 提供图形窗口管理、事件处理、音频控制等功能,适用于 Vulkan 交互中创建窗口和处理用户输入。SDL2 库和头文件在 Vulkan 中主要用于跨平台创建窗口和管理事件,便于开发图形应用的用户界面。

5. Volk Header, Source, and Library:
Volk是一个轻量级的 Vulkan 函数加载器,能够动态加载 Vulkan 函数,而不需要在每次启动时手动查找和调用。它简化了 Vulkan 的函数调用,便于跨平台开发和函数扩展。在 Vulkan 程序初始化时,Volk 可以帮助自动加载目标平台支持的 Vulkan 函数,提升应用的兼容性和执行效率。

6. Vulkan Memory Allocator (VMA) Header:
Vulkan Memory Allocator (VMA)** 是专为 Vulkan 设计的内存分配库,帮助简化内存管理。Vulkan 的内存管理比较复杂,而 VMA 提供了便捷的 API 和封装,简化了内存的分配、释放、优化、压缩等操作,提高了性能。VMA 特别适用于高性能应用,如游戏和实时渲染场景。

安装完成如下图所示。

安装地址中下载好的文件如下图所示。

 点击Bin->vkcube.exe,验证显卡和当前驱动版本是否支持该版本Vulkan,如下图所示出现旋转的方块即为Vulkan安装成功。

 注:若出现报错情况,有可能是未激活显卡,需要安装NVIDIA驱动程序。

参考资料:【Windows】安装NVIDIA驱动 / 更新驱动_windows 更新nvidia驱动-优快云博客 

四、下载GLFW库

下载网址:https://www.glfw.org/download.html

进入网址,选择64位或32位下载,笔者选择64位下载

下载完成后解压,结果如下图所示。

五、下载GLM SDK

下载网址:https://github.com/g-truc/glm/releases 

进入网址后,笔者选择GLM版本为0.9.9.8,点击glm-0.9.9.8.zip进行下载。

下载完成后解压,结果如下图所示。

六、配置项目属性

打开VS2022,新建一个C++空项目,添加main.cpp文件。

打开解决方案资源管理器,右键项目,选择属性。

选择所有配置、所有平台,C++语言标准选择ISO C++17标准,如下图所示。

 添加头文件,选择C/C++->常规->附加包含目录,在第一个添加包含目录里面添加3个目录:1、1.Vulkan包含目录:D:\VulkanSDK\Include(VulkanSDK为笔者自命名的下载地址)

2.GLFW包含目录:D:\GLFW\glfw-3.4.bin.WIN64\include(glfw-3.4.bin.WIN64为下载完成后解压的压缩包)

3.GLM包含目录:D:\GLM\glm-0.9.9.8\glm(glm-0.9.9.8为下载完成后解压的压缩包)

 添加目录完成后如下图所示,点击确定,点击应用。

点击链接器->输入->添加依赖项,输入glfw3.libvulkan-1.lib,如下图所示,点击确定,点击应用。

将顶部选择为Debug和x64,如下图所示。

在mian.cpp中输入以下代码进行测试:

#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\n";

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

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

    glfwDestroyWindow(window);

    glfwTerminate();

    return 0;
}

若出现以下页面中的空白窗口,则表示环境配置成功。打印的“19 extension supported”,表示有19个额外扩展可用。

欢迎交流!🌹🌹 


参考资料:

Vulkan Visual Studio环境配置|极客教程

Window Vulkan开发环境配置 - 知乎

超详细Vulkan开发环境搭建Windows篇_vulkan demo-优快云博客

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值