08/09/2020
渲染通道介绍(Render Pass)
创建管道之前,我们需要告诉Vulkan渲染时候使用的帧缓冲区附件相关信息,大概就是告知流水线输入或者输出什么类型的数据,比如需要指定多少个颜色和深度缓冲区将会被使用,指定多少个采样器被用到及在整个渲染操作中相关的内容如何处理。告知帧缓冲区的附近信息,比如颜色或者深度。
渲染通行证实例是什么:
- 告知颜色和深度缓冲区数量
- 多少内容和样本贯穿渲染指令
- 渲染的大方向:输出到何处
Attachments 附件描述
Attachments 即附件,颜色附件格式与交换链图像格式一样,渲染前后内容(颜色,深度信息,模板信息)是否保留或清空,渲染前后图像如何布局等等。 如果只需要采集图片的颜色信息,渲染管道的描述将会配置成与颜色有关的内容。
VkRenderPass renderPass;
void createRenderPass()
{
//记录颜色附件的描述信息
VkAttachmentDescription colorAttachment{
};
colorAttachment.format = swapChainImageFormat; //保持一致与交换链图像格式
colorAttachment.samples = VK_SAMPLE_COUNT_1_BIT; // no multisampling
colorAttachment.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; //这里每帧绘制时候,framebuffer应该被清空
colorAttachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE; //绘制完的内容应该被保留
colorAttachment.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; //模板加载无所谓
colorAttachment.stencilStoreOp &