在 Vulkan 中调配时的首选格式
Prefered format when swizzling in Vulkan
我想加载在内存中作为 ARGB 布局的纹理(具有 1 字节组件)。因此,当使用 Vulkan 加载它时,我需要对其应用纹理调配,因为 Vulkan 中没有 ARGB 像素格式。
我的问题是,我应该更喜欢使用 VK_FORMAT_R8G8B8A8_UNORM
而不是 VK_FORMAT_B8G8R8A8_UNORM
还是相反?
PD:这个纹理只会被使用一次然后更新
编辑:请注意可用的备选方案是:
VK_FORMAT_R8G8B8A8_UNORM
VK_FORMAT_B8G8R8A8_UNORM
VK_FORMAT_A8B8G8R8_UNORM_PACK32
(相当于 LE 系统上的 VK_FORMAT_R8G8B8A8_UNORM
,因此我将忽略它)
这两种非压缩类型都是 Vulkan 中必需的图像格式,因此对于大多数类型的图像使用,它们将始终存在于 Vulkan 实现中。只要您不使用缓冲区视图格式、图像 load/store 或作为附件,就没有 Vulkan 可检测的理由偏爱一种格式。
由于您要将调配蒙版应用于图像视图,因此格式中组件的顺序与纹理采样操作并不完全相关。
因此,您使用哪个只是个人喜好问题。
我想加载在内存中作为 ARGB 布局的纹理(具有 1 字节组件)。因此,当使用 Vulkan 加载它时,我需要对其应用纹理调配,因为 Vulkan 中没有 ARGB 像素格式。
我的问题是,我应该更喜欢使用 VK_FORMAT_R8G8B8A8_UNORM
而不是 VK_FORMAT_B8G8R8A8_UNORM
还是相反?
PD:这个纹理只会被使用一次然后更新
编辑:请注意可用的备选方案是:
VK_FORMAT_R8G8B8A8_UNORM
VK_FORMAT_B8G8R8A8_UNORM
VK_FORMAT_A8B8G8R8_UNORM_PACK32
(相当于 LE 系统上的VK_FORMAT_R8G8B8A8_UNORM
,因此我将忽略它)
这两种非压缩类型都是 Vulkan 中必需的图像格式,因此对于大多数类型的图像使用,它们将始终存在于 Vulkan 实现中。只要您不使用缓冲区视图格式、图像 load/store 或作为附件,就没有 Vulkan 可检测的理由偏爱一种格式。
由于您要将调配蒙版应用于图像视图,因此格式中组件的顺序与纹理采样操作并不完全相关。
因此,您使用哪个只是个人喜好问题。