目录
一、命令池(Command Pool):命令缓冲的内存管理器
1.1 添加类成员变量
1.2 创建命令池函数
1.3 关键参数解析
二、命令缓冲的分配
2.1 添加命令缓冲成员变量
2.2 分配命令缓冲函数
2.3 命令缓冲层级(level)
三、命令缓冲的记录
3.1 开始记录的配置
3.2 图像布局转换:渲染前的必要准备
布局转换函数实现
渲染前布局转换调用
3.3 启动动态渲染
3.4 核心绘制指令
(1)绑定图形管线
(2)设置动态视口 / 裁剪矩形
(3)绘制三角形
3.5 结束动态渲染
3.6 渲染后布局转换
3.7 结束命令缓冲记录
四、后续章节预告
核心要点回顾
在 Vulkan 中,绘制操作、内存传输等指令并非通过函数调用直接执行,而是需要将所有待执行的操作记录到命令缓冲(Command Buffer) 对象中。这种设计的核心优势在于:
- 指令可批量提交,Vulkan 能基于完整的指令集做更高效的处理;
- 支持多线程并行记录命令,提升渲染流程的并发效率。
一、命令池(Command Pool):命令缓冲的内存管理器
创建命令缓冲前,必须先创建命令池—— 它负责管理命令缓冲的内存分配,所有命令缓冲都从命令池中分配。