Vulkan没有像OpenGL那样的像素传输功能。但VK_FORMAT_R16_UINT
格式如何运作?可以用它从像素着色器中采样无符号短值吗?当我使用它时,我只从采样器中获得零。我正在使用线性过滤。
如果我使用格式VK_FORMAT_R16_UNORM
而不是VK_FORMAT_R16_UINT
,我会得到0-1
之间的值,所以我猜Vulkan会在这种情况下为我的值正常化吗?
答案 0 :(得分:3)
规范不保证支持格式为VK_FORMAT_R16_UINT
的线性过滤。
在vkGetPhysicalDeviceFormatProperties
上使用线性过滤之前,您需要先使用VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
检查支持情况(检查# Below is a recursive function that inserts an element
# at the bottom of a stack.
def insertAtBottom(stack, item):
if isEmpty(stack):
push(stack, item)
else:
temp = pop(stack)
insertAtBottom(stack, item)
push(stack, temp)
# Below is the function that reverses the given stack
# using insertAtBottom()
def reverse(stack):
if not isEmpty(stack):
temp = pop(stack)
reverse(stack)
insertAtBottom(stack, temp)
)。
令人惊讶的是,验证层未报告滥用情况。值得提交增强请求以添加该检查。