Directional Shdaows, no alpha
This commit is contained in:
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user