如何将数据上传到压缩图像中?
How do I upload data into a compressed image?
我最近尝试在 Vulkan 中使用块压缩图像格式,发现当我将代码切换为使用压缩图像格式时,我在渲染时得到了一个完整的垃圾图像。
使用 NVIDIA Nsight 也显示了我看到的相同图像。
我通过将原始 SRGB 像素复制到临时缓冲区并启动 vkCmdCopyBufferImage 到目标图像来上传数据。如果 VkImage
和 VkImageView
的格式为:VK_FORMAT_R8G8B8A8_SRGB
,我会得到此输出
但是当我将格式更改为VK_FORMAT_BC7_SRGB_BLOCK
时。我得到这张图片:
我想知道在将数据复制到图像之前是否需要进行任何转换,还是我只是错误地处理了压缩纹理
用于上传代码的 Pastebin:https://pastebin.com/yrmRrQGp
如果您想使用压缩图像格式,您必须提供按照该格式压缩的图像数据。您不能只更改图像格式并期望一切正常。
我最近尝试在 Vulkan 中使用块压缩图像格式,发现当我将代码切换为使用压缩图像格式时,我在渲染时得到了一个完整的垃圾图像。
使用 NVIDIA Nsight 也显示了我看到的相同图像。
我通过将原始 SRGB 像素复制到临时缓冲区并启动 vkCmdCopyBufferImage 到目标图像来上传数据。如果 VkImage
和 VkImageView
的格式为:VK_FORMAT_R8G8B8A8_SRGB
,我会得到此输出
但是当我将格式更改为VK_FORMAT_BC7_SRGB_BLOCK
时。我得到这张图片:
我想知道在将数据复制到图像之前是否需要进行任何转换,还是我只是错误地处理了压缩纹理
用于上传代码的 Pastebin:https://pastebin.com/yrmRrQGp
如果您想使用压缩图像格式,您必须提供按照该格式压缩的图像数据。您不能只更改图像格式并期望一切正常。