目录
一、动态状态(Dynamic State)
二、顶点输入配置(Vertex Input)
三、输入装配器(Input Assembler)
3.1 图元拓扑(Topology)
3.2 图元重启(Primitive Restart)
四、视口与裁剪矩形(Viewports & Scissors)
4.1 视口(Viewport)
4.2 裁剪矩形(Scissor)
4.3 静态 / 动态配置方式
五、光栅化器(Rasterizer)
关键参数解析
六、多重采样(Multisampling)
七、深度 / 模板测试(Depth & Stencil Testing)
八、颜色混合(Color Blending)
8.1 基础配置(禁用混合)
8.2 混合模式原理
8.3 全局混合配置
九、管线布局(Pipeline Layout)
9.1 添加类成员变量
9.2 创建管线布局
十、总结与后续步骤
核心要点回顾
早期图形 API 会为管线大部分阶段提供默认状态,但 Vulkan 要求开发者显式配置几乎所有管线状态 —— 这些状态会被固化到不可变的管线状态对象中。本章将详解固定功能阶段的配置流程,完成图形管线的核心参数填充。
一、动态状态(Dynamic State)
尽管管线大部分状态需要固化,但仍有少量状态可在绘制时动态修改,无需重建管线。典型示例包括视口尺寸、线宽、混合常量等。若需启用动态状态,需填充 VkPipelineDynamicStateCreateInfo 结构体:
cpp
运行
std::vector<vk::DynamicState> dynamicStates = { vk::DynamicState::eViewport, // 视口动态 vk::DynamicState::eScissor // 裁剪矩形动态 }; vk::PipelineDynamicStateCreateInfo dynamicS