在Vulkan中,是否可以直接将纹理(如果它具有正确的宽度、高度和像素格式)直接绘制到帧缓冲区,而不使用顶点和着色器?
在Vulkan中,是否可以直接将纹理(如果它具有正确的宽度、高度和像素格式)直接绘制到帧缓冲区,而不使用顶点和着色器?
如果vkSurface
支持作为TRANSFER_DST
,则可以使用vkCmdCopyImage
将vkImage
中的内容复制到交换链的vkImage
中,方法是通过vkGetPhysicalDeviceSurfaceCapabilitiesKHR
的结果中的supportedUsageFlags
字段确定。
否则,您需要进行全屏渲染,并将输入图像的颜色数据作为采样纹理或输入附件获取。
vkCmdBlitImage
。而 vkCmdCopyImage
只是直接复制内存,这并不总是有用的。 - QuinchilionVK_FORMAT_FEATURE_BLIT_SRC_BIT
和目标格式支持VK_FORMAT_FEATURE_BLIT_DST_BIT
。这并不总是成立的,因此如果要使用blit,请先检查这些内容。 - Sascha Willems
vkCmdCopy*
命令是你想要的。大多数小样本展示如何使用索引和顶点绘制,而不是直接纹理复制。我曾经问过问题,文档中有可以回答它们的部分,但我没有找到它们。 - Andrew Williamson