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。您的解决方案似乎比使用片段着色器更好。