清除值

现在我们使用了多个使用VK_ATTACHMENT_LOAD_OP_CLEAR标记的附着,这也意味着我们需要设置多个清除值。在createCommandBuffers函数中添加一个VkClearValue结构体数组:

std::array<VkClearValue, 2> clearValues = {};
clearValues[0].color = {0.0f, 0.0f, 0.0f, 1.0f};
clearValues[1].depthStencil = {1.0f, 0};

renderPassInfo.clearValueCount = static_cast<uint32_t>(clearValues.size());
renderPassInfo.pClearValues = clearValues.data();

Vulkan的深度值范围是[0.0,1.0],1.0对应视锥体的远平面,0.0对应视锥体的近平面。深度缓冲的初始值应该设置为远平面的深度值,也就是1.0。