VkAttachmentDescription中的"loadOp"是什么时候执行的?
When the "loadOp" in VkAttachmentDescription is executed?
我正在创建一个使用简单阴影贴图渲染阴影的应用程序。
传球是这样完成的:
离屏通道创建阴影贴图 -> 最后通道渲染到交换链并使用前通道的深度纹理
我的问题是第一次通过。我使用单个顶点着色器渲染模型并仅关联深度纹理。
在管道中,我只有一个附件:
VkAttachmentDescription depthAttachment = {};
depthAttachment.format = m_depthFormat;
depthAttachment.samples = m_msaaSamples;
depthAttachment.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
depthAttachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
depthAttachment.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
depthAttachment.finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
这里我把"loadOp"设置为VK_ATTACHMENT_LOAD_OP_CLEAR但是好像是在第二遍执行之前就完成了操作。
将 "loadOp" 设置为 VK_ATTACHMENT_LOAD_OP_DONT_CARE 适用于 IntelHD 显卡,但不适用于 Nvidia 显卡。
我不确定 "loadOp" 何时执行。
感谢您的帮助!
这个问题是由于明确的价值观。
我使用了 2 个明确的值:
std::array<VkClearValue, 2> clearValues = {};
clearValues[0].color = { 0.0f, 0.0f, 1.0f, 1.0f };
clearValues[1].depthStencil = { 1.0f };
正确的清除只有深度清除:
std::array<VkClearValue, 1> clearValues = {};
clearValues[0].depthStencil = { 1.0f };
我正在创建一个使用简单阴影贴图渲染阴影的应用程序。
传球是这样完成的: 离屏通道创建阴影贴图 -> 最后通道渲染到交换链并使用前通道的深度纹理
我的问题是第一次通过。我使用单个顶点着色器渲染模型并仅关联深度纹理。 在管道中,我只有一个附件:
VkAttachmentDescription depthAttachment = {};
depthAttachment.format = m_depthFormat;
depthAttachment.samples = m_msaaSamples;
depthAttachment.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
depthAttachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
depthAttachment.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
depthAttachment.finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
这里我把"loadOp"设置为VK_ATTACHMENT_LOAD_OP_CLEAR但是好像是在第二遍执行之前就完成了操作。 将 "loadOp" 设置为 VK_ATTACHMENT_LOAD_OP_DONT_CARE 适用于 IntelHD 显卡,但不适用于 Nvidia 显卡。
我不确定 "loadOp" 何时执行。
感谢您的帮助!
这个问题是由于明确的价值观。
我使用了 2 个明确的值:
std::array<VkClearValue, 2> clearValues = {};
clearValues[0].color = { 0.0f, 0.0f, 1.0f, 1.0f };
clearValues[1].depthStencil = { 1.0f };
正确的清除只有深度清除:
std::array<VkClearValue, 1> clearValues = {};
clearValues[0].depthStencil = { 1.0f };