useShadowMapInstancingPS.glsl 783 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #version 330 core
  2. //precision highp float;
  3. in Fragment
  4. {
  5. vec4 color;
  6. } fragment;
  7. in Vert
  8. {
  9. vec2 texcoord;
  10. } vert;
  11. uniform sampler2D Diffuse;
  12. uniform sampler2DShadow shadowMap;
  13. in vec3 lightDir,normal,ambient;
  14. in vec4 ShadowCoord;
  15. out vec4 color;
  16. void main(void)
  17. {
  18. vec4 texel = fragment.color*texture(Diffuse,vert.texcoord);
  19. vec3 ct,cf;
  20. float intensity,at,af;
  21. intensity = 0.5+0.5*clamp( dot( normalize(normal),lightDir ), -1,1 );
  22. af = 1.0;
  23. ct = texel.rgb;
  24. at = texel.a;
  25. //float bias = 0.005f;
  26. float visibility = texture(shadowMap, vec3(ShadowCoord.xy,(ShadowCoord.z)/ShadowCoord.w));
  27. intensity = 0.7*intensity + 0.3*intensity*visibility;
  28. cf = intensity*(vec3(1.0,1.0,1.0)-ambient)+ambient;
  29. color = vec4(ct * cf, fragment.color.w);
  30. }