2026/4/6 2:20:12
网站建设
项目流程
php网站开发说明文档,wordpress修改登陆,招标信息网哪个比较好,网站应用程序池为什么选择 Vulkan#xff1f;
在开始之前#xff0c;我们需要明白为什么在 OpenGL 依然存在的情况下#xff0c;我们需要去“受苦”学习 Vulkan。
简单来说#xff0c;OpenGL 是驱动程序为你做好了大部分工作#xff08;状态管理、内存同步#xff09;#xff0c;这很…为什么选择 Vulkan在开始之前我们需要明白为什么在 OpenGL 依然存在的情况下我们需要去“受苦”学习 Vulkan。简单来说OpenGL 是驱动程序为你做好了大部分工作状态管理、内存同步这很方便但也意味着你无法确切知道驱动在背后做了什么导致了不可预测的性能抖动。Vulkan 的核心哲学是“显式控制 (Explicit Control)”低开销驱动层更薄CPU 负载更低。多线程友好天生支持多核 CPU 并行提交命令。显式内存管理你完全控制显存的分配和同步。虽然代码量会激增画一个三角形可能需要近千行代码但每一行代码都在你的掌控之中。准备工作 (Windows)我们将完全基于 Windows 平台进行开发。你需要准备以下工具操作系统Windows 10 或 Windows 11。显卡支持 Vulkan 的 GPUNVIDIA GTX 600系列以上AMD Radeon HD 7000系列以上或较新的 Intel 集显。IDEVisual Studio 2019或2022确保安装了 Desktop development with C 工作负载。第一步下载 Vulkan SDKVulkan 开发的核心是 LunarG 提供的 SDK。访问 LunarG Vulkan SDK 下载页面。选择Windows平台并下载最新的安装包。关键点在安装过程中务必勾选Add to System Path添加到系统环境变量这能省去后续很多麻烦。安装完成后打开命令提示符CMD输入vulkaninfo。如果看到长长的显卡信息输出说明 SDK 安装成功。第二步准备第三方库 (GLFW 和 GLM)Vulkan 自身是一个纯粹的图形 API它不负责创建窗口或处理用户输入。同时它也不包含数学库。因此我们需要两个帮手1. GLFW (窗口管理)Vulkan 是跨平台的为了屏蔽 Windows API 的复杂性我们使用 GLFW 来创建窗口。访问 GLFW 下载页。下载64-bit Windows binaries(预编译版本)。解压后你会看到include和lib-vc2022(或对应版本) 文件夹。2. GLM (数学库)Vulkan 使用线性代数向量、矩阵GLM 是专门为图形学设计的数学库且完全兼容 OpenGL/Vulkan 的数据结构。访问 GLM 下载页。下载最新版。GLM 是Header Only(只有头文件) 的库不需要编译。第三步Visual Studio 项目配置 (重头戏)这是新手最容易卡关的地方。请按照以下步骤配置你的 VS 项目创建项目新建一个 Empty Project (C)。设置架构在顶部工具栏将解决方案平台从x86改为x64(非常重要Vulkan SDK 和我们下载的 GLFW 都是 64 位的)。接下来打开项目属性 (Project Properties)确保配置选为 All ConfigurationsA. 包含目录 (Include Directories)在C/C - General - Additional Include Directories中添加Vulkan SDK 的 Include 路径 (通常是D:\VulkanSDK\version\Include)GLFW 的include文件夹路径GLM 的根文件夹路径B. 库目录 (Library Directories)在Linker - General - Additional Library Directories中添加Vulkan SDK 的 Lib 路径 (通常是D:\VulkanSDK\version\Lib)GLFW 的lib-vc2022文件夹路径C. 链接器输入 (Linker Input)在Linker - Input - Additional Dependencies中手动输入vulkan-1.libglfw3.libD. 语言标准建议在C/C - Language - C Language Standard中选择ISO C17。第四步Hello Vulkan (测试环境)创建一个main.cpp文件输入以下代码来测试环境是否配置正确。这段代码会初始化一个 GLFW 窗口并检查 Vulkan 扩展支持。#define GLFW_INCLUDE_VULKAN #include GLFW/glfw3.h #include iostream #include stdexcept #include cstdlib const uint32_t WIDTH 800; const uint32_t HEIGHT 600; class HelloVulkanApp { public: void run() { initWindow(); initVulkan(); mainLoop(); cleanup(); } private: GLFWwindow* window; void initWindow() { glfwInit(); // 告诉 GLFW 不要创建 OpenGL 上下文 (因为我们要用 Vulkan) glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); // 暂时禁止调整窗口大小 glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); window glfwCreateWindow(WIDTH, HEIGHT, Vulkan, nullptr, nullptr); } void initVulkan() { // 这里仅仅做一个最简单的测试检查 Vulkan 支持的扩展数量 uint32_t extensionCount 0; vkEnumerateInstanceExtensionProperties(nullptr, extensionCount, nullptr); std::cout 恭喜Vulkan 环境配置成功。 std::endl; std::cout 检测到 extensionCount 个可用的 Vulkan 扩展支持。 std::endl; } void mainLoop() { while (!glfwWindowShouldClose(window)) { glfwPollEvents(); } } void cleanup() { glfwDestroyWindow(window); glfwTerminate(); } }; int main() { HelloVulkanApp app; try { app.run(); } catch (const std::exception e) { std::cerr e.what() std::endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }运行结果按下F5运行。如果你的配置正确你应该会看到一个黑色的空白窗口弹出。控制台输出类似检测到 20个可用的 Vulkan 扩展支持。如果看到了这些恭喜你你已经成功搭建了 Vulkan 的 Windows 开发环境并迈出了最艰难的第一步。下一步环境搭建只是开始。在下一篇文章中我们将深入 Vulkan 的核心概念开始创建Instance (实例)并与物理显卡“握手”。准备好迎接近千行代码画一个三角形的挑战了吗更多信息详见Introduction - Vulkan Tutorial