VK_FORMAT_R16_UINT Vulkan 中的纹理格式
VK_FORMAT_R16_UINT texture format in Vulkan
Vulkan 没有像 OpenGL 那样的任何像素传输功能。但是 VK_FORMAT_R16_UINT
格式是如何工作的呢?可以使用它从像素着色器中采样无符号短值吗?当我使用它时,我只从采样器中得到零。我正在使用线性过滤。
如果我使用 VK_FORMAT_R16_UNORM
而不是 VK_FORMAT_R16_UINT
格式,我得到的值介于 0-1
之间,所以我想 Vulkan 在这种情况下会为我规范化这些值?
规范不保证支持 VK_FORMAT_R16_UINT
格式的线性过滤。
在 VK_FORMAT_R16_UINT
上使用线性过滤之前,您需要先使用 vkGetPhysicalDeviceFormatProperties
检查支持(检查 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
)。
令人惊讶的是,验证层没有报告误用。提交增强请求以添加该检查是值得的。
Vulkan 没有像 OpenGL 那样的任何像素传输功能。但是 VK_FORMAT_R16_UINT
格式是如何工作的呢?可以使用它从像素着色器中采样无符号短值吗?当我使用它时,我只从采样器中得到零。我正在使用线性过滤。
如果我使用 VK_FORMAT_R16_UNORM
而不是 VK_FORMAT_R16_UINT
格式,我得到的值介于 0-1
之间,所以我想 Vulkan 在这种情况下会为我规范化这些值?
规范不保证支持 VK_FORMAT_R16_UINT
格式的线性过滤。
在 VK_FORMAT_R16_UINT
上使用线性过滤之前,您需要先使用 vkGetPhysicalDeviceFormatProperties
检查支持(检查 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
)。
令人惊讶的是,验证层没有报告误用。提交增强请求以添加该检查是值得的。