when building path tracer demo, I pass materials data in ssbo to shader named raytrace.rgen
struct Material
{
vec4 AlbedoColor;
vec4 MRSColor;
vec4 EmissiveColor;
vec4 AlbedoTex;
vec4 MetallicTex;
vec4 RoughnessTex;
vec4 SpecularTex;
vec4 NormalTex;
vec4 EmissiveTex;
};
layout(binding = 0, set=3) readonly buffer MaterialArray { Material[] materials; };
layout(binding = 0, set=0) readonly uniform UniformBufferObject { CameraUniform ubo; };
void main() {
if (Material[0].AlbedoColor.x== 0) {
imageStore(outputImage, ivec2(gl_LaunchIDEXT.xy), vec4(1,1,1,1));
} else {
imageStore(outputImage, ivec2(gl_LaunchIDEXT.xy), vec4(1,0,1,1));
}
return;
}
data accessed in Material is always 0, otherwise ubo data accessed is as expected as set in cpu pipeline, does any one know what is the problems?? appreciate any response.