在本章中,我们将为您配置开发Vulkan应用程序的环境,并安装一些实用的库。我们将使用的所有工具(除编译器外)均兼容Windows、Linux和MacOS系统。强烈推荐使用CMake作为跨平台的开源构建系统生成工具,使用vcpkg作为跨平台的开源C/C++ 包管理器。
步骤1——安装Vulkan SDK
开发Vulkan应用程序所需的核心组件是SDK(软件开发工具包)。其中包含头文件、标准验证层、调试工具以及Vulkan函数的加载器。该加载器会在运行时从显卡驱动中查找对应函数——其原理类似于OpenGL开发中的GLEW库,如果您熟悉该机制的话。
您可从LunarG官网下载SDK,页面底部设有下载按钮。虽然无需注册账户即可下载,但创建账户后将可获取更多可能对您有帮助的补充文档资源。

请继续完成安装流程,并注意记录SDK的安装路径。首先我们将验证您的显卡与驱动程序是否正常支持Vulkan。进入SDK安装目录,打开Bin文件夹并运行vkcube.exe演示程序。此时您应当看到如下画面:

若出现错误提示,请确保您的驱动程序已更新至最新版本、包含Vulkan运行时环境,且您的显卡在支持范围内。具体可参阅引言章节获取主流硬件厂商的驱动程序链接。
该目录中还有另一个对开发很有帮助的程序:glslangValidator.exe与glslc.exe。这两个工具用于将人类可读的GLSL 着色器代码编译为字节码。我们将在着色器模块章节详细探讨这一过程。Bin目录同时包含Vulkan加载器和验证层的二进制文件,而Lib目录则存放相关库文件。
最后是包含Vulkan头文件的Include目录。您可以随意浏览其他文件,但本教程中不会涉及它们的使用。
步骤2——安装Git和CMake
在Windows系统上,访问CMake官网下载3.19以上版本的安装包进行安装,安装完成后在终端窗口中输入cmake命令,能够正常运行证明CMake安装成功。访问Git官网下载最新版本的安装包进行安装,安装完成后在终端窗口中输入git命令,能够正常运行证明Git安装成功。
在Linux和MacOS系统上使用系统工具进行安装,这里就不再赘述。
步骤3——建立开发环境目录
需要为开发环境建立一个根目录,如:e:\vulkan-tutorial,您可以根据自己的习惯选择目录的位置和名字。
步骤4——安装vcpkg
进入开发环境根目录,克隆vcpkg项目,并执行:初始化命令bootstrap-vcpkg脚本:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
步骤5——安装GLFW和GLM
在vcpkg目录中执行:
vcpkg install glfw3
vcpkg install glm
vcpkg会自动下载其源代码进行构建和安装。对于Windows系统,vcpkg会将构建好的库安装到${VCPKG_ROOT}\installed\x64-windows,${VCPKG_ROOT}为vcpkg的安装目录,在我的环境中vcpkg的安装目录为e:\vulkan-tutorial\vcpkg。
步骤6——建立项目
我们现在可以建立第一个项目hello-glfw。
首先在开发环境根目录中建立一个hello-glfw目录以及hello-glfw\src,在hello-glfw目录新建以下文件:CMakeLists.txt、src\hello-glfw.cpp。
CMakeLists.txt的内容为:
cmake_minimum_required(VERSION 3.10)
project(hello-glfw)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(VULKAN_SDK "E:/VulkanSDK/1.4.335.0")
set(VCPKG_ROOT "F:/E/Exercise/opengl/vcpkg")
set(glfw3_DIR "${VCPKG_ROOT}/installed/x64-windows/share/glfw3")
find_package(Vulkan REQUIRED)
find_package(glfw3 CONFIG REQUIRED)
add_executable(${PROJECT_NAME} src/hello-glfw.cpp)
target_link_libraries(${PROJECT_NAME} Vulkan::Vulkan glfw)
if(CMAKE_GENERATOR MATCHES "Visual Studio")
message(STATUS "Configuring the Visual Studio debugger environment variables for ${PROJECT_NAME}...")
set_target_properties(${PROJECT_NAME} PROPERTIES
VS_DEBUGGER_ENVIRONMENT
"PATH=$<$<CONFIG:Debug>:${VCPKG_ROOT}/installed/x64-windows/debug/bin;>$<$<CONFIG:Release>:${VCPKG_ROOT}/installed/x64-windows/bin;>$ENV{PATH}"
)
message(STATUS "Visual Studio debugger environment variables have been set for ${NAME}")
else()
message(STATUS "Non-Visual Studio generator detected, skipping Visual Studio–specific configuration.")
endif()
您需要根据Vulkan SDK和vcpkg的实际安装路径修改CMakelists.txt中相应的内容。
hello-glfw.cpp的内容为:
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
#include <cstdlib>
const uint32_t WIDTH = 800;
const uint32_t HEIGHT = 600;
class HelloGLFWApplication {
public:
void run() {
initWindow();
mainLoop();
cleanup();
}
private:
GLFWwindow* window;
void initWindow() {
glfwInit();
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
window = glfwCreateWindow(WIDTH, HEIGHT, "Vulkan", nullptr, nullptr);
}
void mainLoop() {
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
}
}
void cleanup() {
glfwDestroyWindow(window);
glfwTerminate();
}
};
int main() {
HelloGLFWApplication app;
app.run();
return EXIT_SUCCESS;
}
步骤7——生成构建系统
在项目文件目录中执行:
cmake -S . -B build -G"Visual Studio 16 2019"
如果是Visual Studio 2022,则使用-G"Visual Studio 17 2022"。
这里我们生成的是Visual Studio的构建系统,如果需要生成其他的构建系统,指定相应的构建系统名称即可,是不是非常方便。
命令成功执行后会在项目目录中生成build目录,里面是Visual Studio的项目文件。
步骤8——构建并运行
用Visual Studio打开后,首先构建ALL_BUILD项目,然后就可以运行hello-glfw项目。
如果一切顺利,项目运行后显示一个黑色背景的GLFW窗口,因为这里仅仅是生成了一个空的窗口并没有执行任何Vulkan渲染命令,按ESC键或点击关闭按键即可即出。
后续将以这个项目为起点,逐步进入Vulkan程序的开发。
927

被折叠的 条评论
为什么被折叠?



