首页 > 解决方案 > 如何在不禁用深度测试的情况下读取延迟渲染光照通道中的深度缓冲区?

问题描述

所以在延迟渲染的光照过程中。我需要轻量的深度测试,但我不需要深度写入。而且我还需要知道深度缓冲区中的深度值。两者都是读操作。所以我认为将深度图像附加为 InputAttachment 和 DepthStencilAttachment 不会伤害任何人。但事实证明 InputAttachment 只接受 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL 的图像,而 DepthStencilAttachment 不喜欢这种布局。

标签: vulkan

解决方案


通过扩展使用 aVK_IMAGE_LAYOUT_GENERAL或更好(分别是 Vulkan 1.2)。这允许深度附件同时用作输入附件。VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMALVK_KHR_separate_depth_stencil_layouts


推荐阅读