Directional Shdaows, no alpha

This commit is contained in:
Confideo-IOM
2026-08-03 22:34:52 +01:00
parent 299ad1d9c7
commit d074dc71a5
69 changed files with 1353 additions and 406 deletions
@@ -22,20 +22,40 @@ layout(binding = 0) uniform shadow_per_frame
uint shadow_idxs;
};
layout(std430, binding = 5) readonly buffer ShadowMapSets
layout(std430, binding = 5) readonly buffer shadow_map_sets
{
ShadowMapSet shadows[10];
};
layout (location=0) in VS_OUT
{
vec2 vsUV;
flat uint vsMaterialID;
}vs_in[];
layout (location=0) out GEOM_OUT
{
vec2 vsUV;
flat uint vsMaterialID;
}geom_out;
void main()
{
{
mat4 view = shadows[shadow_idxs].light_space_view[gl_InvocationID];
mat4 proj = shadows[shadow_idxs].light_space_proj[gl_InvocationID];
for (int i = 0; i < 3; ++i)
{
gl_Position = shadows[shadow_idxs].light_space_proj[gl_InvocationID] *
shadows[shadow_idxs].light_space_view[gl_InvocationID] *
gl_in[i].gl_Position;
gl_Layer = gl_InvocationID;
EmitVertex();
vec4 clip_space_pos = proj * view * gl_in[i].gl_Position;
gl_Position = clip_space_pos;
geom_out.vsMaterialID = vs_in[gl_InvocationID].vsMaterialID;
geom_out.vsUV = vs_in[gl_InvocationID].vsUV;
EmitVertex();
}
EndPrimitive();
}