vulkan - 如何在不禁用深度测试的情况下读取延迟渲染光照通道中的深度缓冲区?
问题描述
所以在延迟渲染的光照过程中。我需要轻量的深度测试,但我不需要深度写入。而且我还需要知道深度缓冲区中的深度值。两者都是读操作。所以我认为将深度图像附加为 InputAttachment 和 DepthStencilAttachment 不会伤害任何人。但事实证明 InputAttachment 只接受 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL 的图像,而 DepthStencilAttachment 不喜欢这种布局。
解决方案
通过扩展使用 aVK_IMAGE_LAYOUT_GENERAL
或更好(分别是 Vulkan 1.2)。这允许深度附件同时用作输入附件。VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VK_KHR_separate_depth_stencil_layouts
推荐阅读
- angularjs - 我如何始终在 Master - Detail Kendo 网格行扩展上调用函数?
- c - 从映射的 NULL 指针读取数据
- c# - 将文件发布到控制器 - IFormFiles 始终为空
- octopus-deploy - 八达通部署通过错误
- input - 如何在 PL/SQL CURSOR 中将参数作为输入?
- python - 如何删除标头以仅获取加密部分
- python - 在 Python 中使用循环从 CSV 中提取值
- mysql - 如何在 SQL 的 Like 运算符中获取元音?
- ssis - 如何重命名 ssis 解决方案
- reactjs - 导入组件,元素类型无效:应为字符串