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

C++ 如何将深度图像复制到彩色图像?,c++,vulkan,C++,Vulkan,我试着将深度图像拼接成更小的图像(目标是模糊图像) 问题是,当我使用VK_FILTER\u LINEAR执行vkcmdblimitimage时,我有一条消息:如果srcImage的格式是depth、stencil或depth stencil,那么FILTER必须是最接近的VK_FILTER\u。我想我首先需要将深度图像复制到彩色图像 然后我尝试使用最近的VK_FILTER_进行vkcmdblimitimage,但我有一个错误:如果srcImage和dstImage图像中的一个具有深度、模具或深度

我试着将深度图像拼接成更小的图像(目标是模糊图像)

问题是,当我使用
VK_FILTER\u LINEAR
执行
vkcmdblimitimage
时,我有一条消息:
如果srcImage的格式是depth、stencil或depth stencil,那么FILTER必须是最接近的VK_FILTER\u
。我想我首先需要将深度图像复制到彩色图像

然后我尝试使用最近的
VK_FILTER_
进行
vkcmdblimitimage
,但我有一个错误:
如果srcImage和dstImage图像中的一个具有深度、模具或深度模具的格式,那么另一个必须具有完全相同的格式

我对
vkCmdCopyImage
也有同样的问题


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

您不能直接将深度数据复制到彩色图像中。您可以通过
vkCmdCopyImageToBuffer
将深度数据复制到缓冲区,然后使用
vkCmdCopyBufferToImage
将该数据复制到图像中此操作成本高吗?您认为最好将彩色图像和片段着色器附加到创建深度缓冲区的过程,还是使用过渡缓冲区?在Intel HD Graphics 520上,我的性能是:直接使用深度图像->44 FPS,使用片段着色器创建深度图像->23 FPS的彩色图像,按照建议使用过渡缓冲区->35 FPS。您的解决方案似乎比使用片段着色器更好。