我的着色器索引为采样器和图像,但是当我从图像中取样时(只有当我在着色器中采样时才得到错误),我就会得到一个错误:
绑定#0索引0中的
描述符需要浮动组件类型,但绑定描述符格式是VK_FORMAT_R8G8B8A8_UINT。Vulkan规范声明:通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符必须是有效的,如果绑定到此命令所使用的管道绑定点的VkPipeline静态地使用它们
的确,我对将R8G8B8A8_UINT映像绑定到索引感到内疚,我尝试对其进行示例,但是为什么它坚持它应该是浮点组件类型呢?
我在我的阴影中对图像进行了如下采样:
layout(set = 0, binding = 0) uniform texture2D textures[20];
layout(set = 0, binding = 1) uniform sampler samplers[4];
texture(sampler2D(textures[0], samplers[0]), vec2(inPosAndCoords.zw) ); 而这个错误会引发。为什么要坚持图像的组件是浮动的?
发布于 2022-04-16 15:35:42
为什么坚持图像的组件是浮动的?
因为这就是你的着色器要求的。图像格式的基本类型被放入图像的GLSL类型中。
texture2D是一个带有浮点格式的二维纹理.utexture2D是一个无符号整数格式的2D纹理。
https://stackoverflow.com/questions/71895205
复制相似问题