13 layout(push_constant) uniform Transform
17 uniform sampler2DShadow shadow_map;
19 #pragma MSP stage(vertex)
20 layout(location=0) in vec4 position;
23 out vec4 world_position = model_matrix*position;
24 gl_Position = viewproj_matrix*world_position;
27 #pragma MSP stage(fragment)
28 layout(location=0) out vec4 frag_out;
31 vec3 shadow_coord = (shadow_matrix*world_position).xyz;
32 if(shadow_coord.x>=0 && shadow_coord.x<=1 && shadow_coord.y>=0 && shadow_coord.y<=1)
33 return texture(shadow_map, shadow_coord);
39 frag_out = vec4(color.rgb*get_shadow(), color.a);
44 /* Expected output: vertex
45 layout(set=0, binding=24) uniform Camera
49 layout(push_constant) uniform Transform
53 layout(location=0) in vec4 position;
54 layout(location=0) out vec4 world_position;
57 world_position = model_matrix*position;
58 gl_Position = viewproj_matrix*world_position;
62 /* Expected output: fragment
63 layout(set=0, binding=35) uniform Shadow
67 layout(set=0, binding=65) uniform Surface
71 layout(set=0, binding=73) uniform sampler2DShadow shadow_map;
72 layout(location=0) out vec4 frag_out;
73 layout(location=0) in vec4 world_position;
76 vec3 shadow_coord = (shadow_matrix*world_position).xyz;
77 if(shadow_coord.x>=0.0&&shadow_coord.x<=1.0&&shadow_coord.y>=0.0&&shadow_coord.y<=1.0)
78 return texture(shadow_map, shadow_coord);
84 frag_out = vec4(color.rgb*get_shadow(), color.a);