1.
序
2.
前言
2.1.
关于本书
2.2.
电子书
2.3.
教程结构
3.
概述
3.1.
Vulkan起源
3.2.
画一个三角形
3.3.
总结
3.4.
API概念
3.5.
校验层
4.
开发环境
4.1.
Windows
4.2.
Linux
4.3.
MacOS
5.
基础代码
5.1.
一般结构
5.2.
资源管理
5.3.
和GLFW交互
6.
实例
6.1.
创建一个实例
6.2.
检测扩展支持
6.3.
清理
7.
校验层
7.1.
校验层是什么?
7.2.
使用校验层
7.3.
消息回调
7.4.
配置
8.
物理设备和队列族
8.1.
选择一个物理设备
8.2.
设备需求检测
8.3.
队列族
9.
逻辑设备和队列
9.1.
介绍
9.2.
指定要创建的队列
9.3.
指定使用的设备特性
9.4.
创建逻辑设备
9.5.
获取队列句柄
10.
窗口表面
10.1.
创建窗口表面
10.2.
查询呈现支持
10.3.
创建呈现队列
11.
交换链
11.1.
检测交换链支持
11.2.
查询交换链支持细节
11.3.
为交换链选择合适的设置
11.4.
表面格式
11.5.
呈现模式
11.6.
交换范围
11.7.
创建交换链
11.8.
获取交换链图像
12.
图像视图
13.
图形管线概述
14.
着色器模块
14.1.
顶点着色器
14.2.
片段着色器
14.3.
逐顶点着色
14.4.
编译着色器
14.5.
载入着色器
14.6.
创建着色器模块
14.7.
创建着色器阶段
15.
固定功能
15.1.
顶点输入
15.2.
输入装配
15.3.
视口和裁剪
15.4.
光栅化
15.5.
多重采样
15.6.
深度和模板测试
15.7.
颜色混合
15.8.
动态状态
15.9.
管线布局
15.10.
总结
16.
渲染流程
16.1.
配置
16.2.
附着描述
16.3.
子流程和附着引用
16.4.
渲染流程
17.
阶段总结
18.
帧缓冲
19.
指令缓冲
19.1.
指令池
19.2.
分配指令缓冲
19.3.
记录指令到指令缓冲
19.4.
开始渲染流程
19.5.
基础绘制指令
19.6.
结束渲染流程
20.
渲染和呈现
20.1.
配置
20.2.
同步
20.3.
信号量
20.4.
从交换链获取图像
20.5.
提交指令缓冲
20.6.
子流程依赖
20.7.
呈现
20.8.
多帧并行渲染
20.9.
总结
21.
重建交换链
21.1.
介绍
21.2.
重建交换链
21.3.
交换链不完全匹配和交换链过期
21.4.
显式处理窗口大小改变
21.5.
处理窗口最小化
22.
顶点输入描述
22.1.
介绍
22.2.
顶点着色器
22.3.
顶点数据
22.4.
绑定描述
23.
创建顶点缓冲
23.1.
介绍
23.2.
创建缓冲
23.3.
内存需求
23.4.
内存分配
23.5.
填充顶点缓冲
23.6.
绑定顶点缓冲
24.
暂存缓冲
24.1.
介绍
24.2.
传输队列
24.3.
创建缓冲的辅助函数
24.4.
使用暂存缓冲
24.5.
总结
25.
索引缓冲
25.1.
介绍
25.2.
创建索引缓冲
25.3.
使用索引缓冲
26.
描述符布局和缓冲
26.1.
介绍
26.2.
顶点着色器
26.3.
描述符集布局
26.4.
uniform缓冲
26.5.
更新uniform数据
27.
描述符池和描述符集
27.1.
介绍
27.2.
描述符池
27.3.
描述符集
27.4.
使用描述符集
27.5.
多个描述符集
28.
图像
28.1.
介绍
28.2.
图像库
28.3.
载入图像
28.4.
暂存缓冲
28.5.
纹理图像
28.6.
布局变换
28.7.
复制缓冲到图像
28.8.
准备纹理图像
28.9.
变换屏障掩码
28.10.
清理
29.
图像视图和采样器
29.1.
纹理图像视图
29.2.
采样器
29.3.
各向异性设备特性
30.
组合图像采样器
30.1.
介绍
30.2.
更新描述符
30.3.
纹理坐标
30.4.
着色器
31.
深度缓冲
31.1.
介绍
31.2.
三维几何
31.3.
深度图像和视图
31.4.
渲染流程
31.5.
帧缓冲
31.6.
清除值
31.7.
深度和模板状态
31.8.
处理窗口大小变化
32.
载入模型
32.1.
介绍
32.2.
库
32.3.
网格样例
32.4.
载入顶点和索引
32.5.
顶点去重
33.
生成细化贴图
33.1.
介绍
33.2.
创建图像
33.3.
生成细化贴图
33.4.
线性过滤支持
33.5.
采样器
33.6.
总结
34.
多重采样
34.1.
介绍
34.2.
获取可用样本数
34.3.
设置渲染目标
34.4.
添加附着
34.5.
提升质量
34.6.
总结
35.
FAQ
Light
Rust
Coal
Navy
Ayu
Vulkan编程指南
介绍
上一章节我们介绍了用于描述可以绑定的描述符类型的描述符布局。在这一章节,我们为每一个vkBuffer创建描述符集,将其和uniform缓冲描述符进行绑定。