@@ -12,81 +12,61 @@ comments: true
1212> 作为跨平台的教程,我们不限制编译器的选择,但请保证它支持您需要的 C++ 标准。
1313
1414## ** 安装 Vulkan SDK**
15+
1516Vulkan SDK 是开发Vulkan应用程序的核心组件,包含:
1617
1718- 头文件
1819- 函数加载器
1920- 标准验证层
20- - 着色器编译支持
21- - ······
21+ - 开发辅助库
2222
2323可以从 [ LunarG官网] ( https://vulkan.lunarg.com/ ) 下载SDK,无需注册账户。
2424
25+ ### Windows
2526
26- ### Windows 安装
27- 1 . 从 ** [ 官网] ( https://vulkan.lunarg.com/ ) ** 下载 Vulkan SDK 并运行安装程序,** 允许它设置环境变量**
28- 2 . 验证安装:
29- - 进入 SDK 安装目录的 Bin 子目录
30- - 运行 vkcube.exe 演示程序
31- - 应看到旋转的立方体窗口
27+ 从 [ 官网] ( https://vulkan.lunarg.com/sdk/home#windows ) 下载 Vulkan SDK 并运行安装程序,** 允许它设置环境变量** (如果可选)。
3228
33- ![ cube ] ( ../../images/0001/cube_demo.png )
29+ #### 验证安装:
3430
35- ### Linux
31+ 进入 SDK 安装目录的 Bin 子目录,运行 vkcube.exe 演示程序:
3632
37- #### 图形界面安装
38- 参考Windows安装方法。
33+ ![ cube] ( ../../images/0001/cube_demo.png )
3934
40- #### 命令行安装:
41- Ubuntu/Debian系
42- ``` shell
43- sudo apt install vulkan-tools libvulkan-dev vulkan-validationlayers-dev spirv-tools
44- ```
35+ ### Linux
4536
46- Fedora/RHEL系
47- ``` shell
48- sudo dnf install vulkan-tools vulkan-loader-devel mesa-vulkan-devel vulkan-validation-layers-devel
49- ```
37+ 推荐 [ LunarG官网] ( https://vulkan.lunarg.com/sdk/home#linux ) 下载。
5038
51- Arch Linux
52- ``` shell
53- sudo pacman -S vulkan-devel
54- ```
39+ 使用命令行安装请参考 [ 此文档] ( https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html ) 。
5540
5641#### 验证安装:
42+
5743``` shell
5844vkcube
5945```
6046
61- 确保您看到以下窗口弹出
47+ 确保您看到以下窗口弹出:
6248
6349![ cube] ( ../../images/0001/cube_demo_nowindow.png )
6450
6551
66- ### MacOS 安装
67-
68- 要求:
69-
70- - MacOS 10.11或更高版本
71- - 支持Metal API的硬件
52+ ### MacOS
7253
73- 步骤:
54+ 要求:MacOS 10.11或更高版本,支持Metal API的硬件。
7455
75- 1 . 从 [ LunarG官网] ( https://vulkan.lunarg.com/ ) 下载SDK
56+ 从 [ LunarG官网] ( https://vulkan.lunarg.com/sdk/home#mac ) 下载 SDK 并解压到选定目录。
7657
77- 2 . 解压到选定目录
78-
79- 3 . 运行 ` Applications ` 目录下的 ` vkcube ` 演示程序
58+ #### 验证安装:
8059
81- 您应该看到以下内容
60+ 运行 ` Applications ` 目录下的 ` vkcube ` 演示程序, 您应该看到以下内容:
8261
8362![ cube] ( ../../images/0001/cube_demo_mac.png )
8463
8564## ** 依赖库安装**
8665
87- 我们使用 vcpkg 作为跨平台包管理器 ,安装方式请参考 [ 官方文档] ( https://learn.microsoft.com/zh-cn/vcpkg/get_started/overview ) 。
66+ 我们使用 vcpkg 进行依赖管理,它是由微软管理,是 C++ 目前最通用的包管理工具 ,安装方式请参考 [ 官方文档] ( https://learn.microsoft.com/zh-cn/vcpkg/get_started/overview ) 。
8867
8968### GLFW
69+
9070Vulkan 本身是一个平台无关的 API,不包含用于创建窗口以显示渲染结果的工具。
9171我们将使用 [ GLFW] ( http://www.glfw.org/ ) 库来创建窗口,它支持 Windows、Linux 和 MacOS,且和 Vulkan 有很好的集成。
9272
@@ -95,14 +75,21 @@ Vulkan 本身是一个平台无关的 API,不包含用于创建窗口以显示
9575vcpkg install glfw3
9676```
9777
78+ > Vulkan SDK 还内置了 SDL2 窗口库,它更加强大,但远比 GLFW 复杂。
79+ > GAMES104 的 Piccolo 引擎也使用 GLFW ,它完全可以满足本教程的需求。
80+
9881### GLM
99- 与 DirectX 12 不同,Vulkan 不包含用于线性代数运算的库。我们使用 [ GLM] ( https://github.com/g-truc/glm ) 线性代数库,它专为图形 API 设计,常用于 OpenGL 与 Vulkan 。
82+
83+ 与 DirectX 12 不同,Vulkan 并不内置线性代数工具。我们使用 [ GLM] ( https://github.com/g-truc/glm ) 线性代数库,它专为图形 API 设计,常用于 OpenGL 与 Vulkan 。
10084
10185安装命令:
86+
10287``` shell
10388vcpkg install glm
10489```
10590
91+ > SDK 中其实附带了 glm ,但这里依然推荐你使用 vcpkg 安装。
92+
10693## ** 项目初始化**
10794
10895### 目录结构
@@ -119,11 +106,10 @@ vcpkg install glm
119106
120107### CMake配置
121108
122- 1 . 设置工具链为vcpkg。
123- 2 . 设定项目C++标准。
124- 3 . 查找Vulkan,glm,glfw3三个库。
125- 4 . 添加主程序。
126- 5 . 链接库。
109+ 1 . 设置工具链为 vcpkg 。
110+ 2 . 设定项目 C++ 标准。
111+ 3 . 查找 Vulkan,glm,glfw3 三个库。
112+ 4 . 添加主程序并链接库。
127113
128114** 参考代码:**
129115
@@ -208,7 +194,7 @@ int main() {
208194}
209195```
210196
211- 你无需理解上述C++ 代码的含义,这只是测试库是否成功导入。
197+ 你无需理解上述 C++ 代码的含义,这只是测试库是否成功导入。
212198
213199### 构建运行
214200
@@ -236,16 +222,16 @@ build/HelloVulkan
236222
237223### 关于CMake预设
238224
239- 注意: ** CMake预设不是必须的** ,我们没有复杂的配置需求,你完全可以通过上面两行简单的CMake指令构建项目!
225+ ** CMake预设不是必须的** ,我们没有复杂的配置需求,你完全可以通过上面两行简单的CMake指令构建项目!
240226
241- 如果你喜欢使用 ` CMakePresets.json ` ( 它可以很好地和 CLion、VSCode、Visual Studio 配合) ,可以参考 ** [ 这个] ( ../../codes/00/01_env/CMakePresets.json ) ** 预设模板。
227+ 如果你喜欢使用 ` CMakePresets.json ` \( 它可以很好地和 CLion、VSCode、Visual Studio 集成 \) ,可以参考 ** [ 这个] ( ../../codes/00/01_env/CMakePresets.json ) ** 预设模板。
242228
243229此预设模板使用 Ninja 作为生成器,提供了 MSVC/GNU/Clang 工具链的预设配置。
244230
245231## ** 代码编辑器**
246232
247233建议使用一个足够智能的编辑器。
248- 当你不确定某些函数的参数和它的含义时,可以右键函数并跳转到它的定义并查看实现 。Visual Studio / VSCode / CLion都能提供此功能 。
234+ 当你不确定某些函数的参数和它的含义时,可以右键函数跳转到它的定义并查看实现 。Visual Studio / VSCode / CLion 都提供此功能 。
249235
250236---
251237
0 commit comments