c++ - 如何将深度图像复制到彩色图像?

标签 c++ vulkan

我尝试将深度图像 blit 成较小的图像(目标是模糊图像)。

问题是,当我使用 VK_FILTER_LINEAR 执行 vkCmdBlitImage 时,我收到以下消息:If the format of srcImage is a depth, stencil, or depth stencil那么过滤器必须是 VK_FILTER_NEAREST。我想我首先需要将深度图像复制到彩色图像。

然后我用 VK_FILTER_NEAREST 尝试了 vkCmdBlitImage 但我有这个错误:如果 srcImage 和 dstImage 图像之一具有深度、模板或深度模板格式,另一个必须具有完全相同的格式

我对 vkCmdCopyImage 也有同样的问题。

我的问题是:我可以在不创建管道的情况下将深度图像复制到彩色图像吗?

最佳答案

您不能直接将深度数据复制到彩色图像中。您可以通过 vkCmdCopyImageToBuffer 将深度数据复制到缓冲区,然后使用 vkCmdCopyBufferToImage 将该数据复制到图像中。

关于c++ - 如何将深度图像复制到彩色图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063803/

相关文章:

c++ - 单元测试仅在 ARM 中失败

c++ - 如何获取 Pin 中存储指令写入的值?

c++ - 使用 QT 和 SQLite 通过单元格编辑更新数据库

c - VkApplicationInfo 有什么意义?

c++ - 如何为我的 Vulkan 类创建这个通用数据结构字段?

c++ - 我怎样才能有效地纹理化多个 Sprite ?

c++ - 如何将 std::mutex 与其他一些类放在 std::tuple 中?

vulkan - 模板传递写入颜色缓冲区吗?

c++ - 如何在 Vulkan 中跨多个计算队列执行并行计算着色器?

c++ - 从同一个 VkPhysicalDevice 创建两个 VkDevices 是否有效?