X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=shaderlib%2Fshadow.glsl;h=04cf6832dcffd19a6a4949c1049b98e0f2b64a40;hb=82282de52e8e8f3bbafefaf92bf76f53f2c2495e;hp=f168fe7955431869b25f90b8909192453929bcd0;hpb=a3c33df71e507380100069ad7ef802b61de351bb;p=libs%2Fgl.git diff --git a/shaderlib/shadow.glsl b/shaderlib/shadow.glsl index f168fe79..04cf6832 100644 --- a/shaderlib/shadow.glsl +++ b/shaderlib/shadow.glsl @@ -3,7 +3,7 @@ import msp_interface; uniform ShadowMap { float shadow_darkness; - mat4 shd_eye_matrix; + mat4 shd_world_matrix; }; uniform sampler2DShadow shadow_map; @@ -11,9 +11,9 @@ uniform sampler2DShadow shadow_map; layout(constant_id=auto) const bool use_shadow_map = false; #pragma MSP stage(vertex) -void shadow_transform(vec4 eye_vertex) +void shadow_transform(vec4 world_vertex) { - out vec3 shadow_coord = (shd_eye_matrix*eye_vertex).xyz; + out vec3 shadow_coord = (shd_world_matrix*world_vertex).xyz; } #pragma MSP stage(fragment) @@ -21,6 +21,8 @@ virtual float get_shadow_factor(int index) { if(use_shadow_map) { + if(shadow_coord.x<0 || shadow_coord.x>1 || shadow_coord.y<0 || shadow_coord.y>1) + return 1.0; float shadow_sample = texture(shadow_map, shadow_coord); return mix(1.0, shadow_sample, shadow_darkness); }