【发布时间】:2017-03-08 14:55:01
【问题描述】:
Vulkan 没有像 OpenGL 那样的任何像素传输功能。但是VK_FORMAT_R16_UINT 格式是如何工作的呢?可以使用它从像素着色器中采样无符号短值吗?当我使用它时,我只能从采样器中得到零。我正在使用线性过滤。
如果我使用VK_FORMAT_R16_UNORM 格式而不是VK_FORMAT_R16_UINT 格式,我会得到0-1 之间的值,所以我猜Vulkan 在这种情况下会为我标准化这些值?
【问题讨论】:
-
你在使用线性过滤吗? VK_FORMAT_R16_UNORM 不保证对此的支持。您是否检查过没有验证错误?
-
@Columbo 是的,我正在使用线性过滤,我没有验证错误。
-
要在 VK_FORMAT_R16_UINT 上使用线性过滤,您需要首先使用 vkGetPhysicalDeviceFormatProperties 检查是否支持(检查 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)。你能验证它是否受支持吗?
-
@Columbo 不支持,我以为不支持验证层会告诉我的,谢谢。您能否在答案中写下您的评论,以便我将其作为正确答案。