Vulkan中分离式采样图像与采样器的GLSL实现方法问询
GLSL中分离式描述符的实现疑问
我已经完成了纹理和采样器对象的代码编写,但不知道如何在GLSL中实现分离式描述符。
组合式图像采样器的写法(已知)
访问描述符集0、绑定0的组合式图像采样器写法如下:
layout(set = 0, binding = 0) uniform sampler2D texSampler;
片段着色器通过sampler2D和texture函数采样图像:
layout(location = 0) in vec2 fragTexCoord; layout(location = 0) out vec4 outColor; void main() { outColor = texture(texSampler, fragTexCoord); }
分离式描述符的疑问
我了解到需要为采样器创建类型为VK_DESCRIPTOR_TYPE_SAMPLER的描述符绑定,为采样图像创建类型为VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE的描述符绑定,但不清楚访问这些分离式描述符的语法:
layout(set = 0, binding = 0) uniform /* 不知道类型 */ sampler layout(set = 0, binding = 1) uniform /* 不知道类型 */ sampledImage // 或者... layout(set = 0, binding = 0) uniform /* 不知道类型 */ sampler layout(set = 1, binding = 0) uniform /* 不知道类型 */ sampledImage
核心问题
- 采样器和图像是否需要按照创建描述符集时的设置存于不同集合/绑定?
- 若
sampler2D对应VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,那么以下分离式类型对应的GLSL语法是什么?VK_DESCRIPTOR_TYPE_SAMPLERVK_DESCRIPTOR_TYPE_SAMPLED_IMAGEVK_DESCRIPTOR_TYPE_STORAGE_IMAGEVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
- 如何在
main函数中调用这些分离式对象来设置outColor的值?
内容的提问来源于stack exchange,提问作者ModernEraCaveman
相关产品推荐
相关产品推荐

