Link

构建项目

首先,同步 Git 项目,地址为 https://github.com/vblanco20-1/vulkan-guide/。 all-chapters 分支包含整个项目的示例代码,而 starting-point 分支包含初始空项目设置。 我建议您将两个分支同步到不同的文件夹,如果在某个时候遇到困难,请检查 all-chapters 代码中的代码是如何工作的。 如果您想要直接下载代码而不使用 Git,只需从这些直接链接下载即可。

所有章节

起点

您将需要 Visual Studio 来构建项目。 项目中的代码应跨平台工作,但本指南以 Windows 为中心。

首先,安装 Vulkan SDK https://vulkan.lunarg.com/sdk/home。 这将包含创建 Vulkan 应用程序所需的开发头文件和库。 它被放置在一个全局位置,因此您无需担心它的安装位置。

然后获取 CMake,因为这是我们将要使用的构建系统。 https://cmake.com.cn/

安装 CMake 后,使用 CMake-gui 打开项目根目录 CMakeLists。 按下 Configure 按钮。

如果此时它抱怨找不到 Vulkan_INCLUDE_DIR 或 Vulkan_LIBRARY,请确保您已完成 Vulkan SDK 的安装,然后关闭并重新打开 CMake-Gui 并再次尝试配置。

现在依赖项已设置,您可以继续使用 CMake 并配置,然后为 Visual Studio(或您选择的 IDE)生成项目文件。

从 Visual Studio 中,选择 engine 目标,设置为启动项目,现在您只需按 F5(开始调试)即可编译并执行它

vs

第三方库

在 third_party 文件夹下,我们有几个不同的库,我们将在整个教程中使用它们。 这些库都作为源代码嵌入到文件夹中。 它们中的一些具有源代码编辑或与公共仓库中的内容不同

这是我们正在使用的库列表。

  • vulkan SDK:这一个不在 third_party 文件夹中,但它是我们拥有的依赖项。 您应该已从上面的解释中安装了它
  • vkbootstrap:我们将使用它来简化 vulkan 初始化逻辑。 它将执行诸如为我们选择要使用的 gpu 以及设置一些初始结构之类的操作。
  • VMA:Vulkan 内存分配器。 这是一个为 GPU 结构实现高性能内存分配器的库。 我们将使用它而不是尝试自己编写分配器。 它将管理我们的 GPU 内存
  • SDL:高度多平台库,用于窗口、输入、音频和一些其他东西。 我们将在教程中使用其窗口和输入部分。
  • GLM:数学库。 将提供向量、矩阵等。
  • {fmt}:字符串格式化和控制台输出库。 我们将使用它代替 std::cout,因为它运行速度明显更快,并为我们提供了很棒的实用程序来显示字符串和其他格式化选项。
  • stb_image:用于加载 PNG 或 jpeg 图像。
  • dear imgui:很棒的 UI 库,对于调试界面非常有用。 将让我们显示一些计时或添加一些 UI 窗口。
  • fastgltf:高性能 GLTF 加载库。

下一步: 代码演练