shadowmap_pars_fragment.glsl 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifdef USE_SHADOWMAP
  2. uniform sampler2D shadowMap[ MAX_SHADOWS ];
  3. uniform vec2 shadowMapSize[ MAX_SHADOWS ];
  4. uniform float shadowDarkness[ MAX_SHADOWS ];
  5. uniform float shadowBias[ MAX_SHADOWS ];
  6. varying vec4 vShadowCoord[ MAX_SHADOWS ];
  7. float unpackDepth( const in vec4 rgba_depth ) {
  8. const vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );
  9. float depth = dot( rgba_depth, bit_shift );
  10. return depth;
  11. }
  12. #if defined(POINT_LIGHT_SHADOWS)
  13. uniform samplerCube shadowCube[ MAX_SHADOWS ];
  14. vec4 pack1K ( float depth ) {
  15. depth /= 1000.0;
  16. const vec4 bitSh = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );
  17. const vec4 bitMsk = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );
  18. vec4 res = fract( depth * bitSh );
  19. res -= res.xxyz * bitMsk;
  20. return res;
  21. }
  22. float unpack1K ( vec4 color ) {
  23. const vec4 bitSh = vec4( 1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0 );
  24. return dot( color, bitSh ) * 1000.0;
  25. }
  26. vec3 gridSamplingDisk[ 20 ];
  27. bool gridSamplingInitialized = false;
  28. void initGridSamplingDisk(){
  29. if( gridSamplingInitialized ){
  30. return;
  31. }
  32. gridSamplingDisk[0] = vec3(1, 1, 1);
  33. gridSamplingDisk[1] = vec3(1, -1, 1);
  34. gridSamplingDisk[2] = vec3(-1, -1, 1);
  35. gridSamplingDisk[3] = vec3(-1, 1, 1);
  36. gridSamplingDisk[4] = vec3(1, 1, -1);
  37. gridSamplingDisk[5] = vec3(1, -1, -1);
  38. gridSamplingDisk[6] = vec3(-1, -1, -1);
  39. gridSamplingDisk[7] = vec3(-1, 1, -1);
  40. gridSamplingDisk[8] = vec3(1, 1, 0);
  41. gridSamplingDisk[9] = vec3(1, -1, 0);
  42. gridSamplingDisk[10] = vec3(-1, -1, 0);
  43. gridSamplingDisk[11] = vec3(-1, 1, 0);
  44. gridSamplingDisk[12] = vec3(1, 0, 1);
  45. gridSamplingDisk[13] = vec3(-1, 0, 1);
  46. gridSamplingDisk[14] = vec3(1, 0, -1);
  47. gridSamplingDisk[15] = vec3(-1, 0, -1);
  48. gridSamplingDisk[16] = vec3(0, 1, 1);
  49. gridSamplingDisk[17] = vec3(0, -1, 1);
  50. gridSamplingDisk[18] = vec3(0, -1, -1);
  51. gridSamplingDisk[19] = vec3(0, 1, -1);
  52. gridSamplingInitialized = true;
  53. }
  54. #endif
  55. #endif