GaussianBlurCommon.glsl 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Copyright (C) 2009-2017, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #ifndef ANKI_SHADERS_GAUSSIAN_BLUR_COMMON_GLSL
  6. #define ANKI_SHADERS_GAUSSIAN_BLUR_COMMON_GLSL
  7. #include "shaders/Common.glsl"
  8. const uint STEP_COUNT_K3 = 1u;
  9. const float WEIGHTS_K3[STEP_COUNT_K3] = {0.50000};
  10. const float OFFSETS_K3[STEP_COUNT_K3] = {0.01742};
  11. const uint STEP_COUNT_K5 = 2u;
  12. const float WEIGHTS_K5[STEP_COUNT_K5] = {0.44908, 0.05092};
  13. const float OFFSETS_K5[STEP_COUNT_K5] = {0.53805, 2.06278};
  14. const uint STEP_COUNT_K7 = 3u;
  15. const float WEIGHTS_K7[STEP_COUNT_K7] = {0.33023, 0.15701, 0.01276};
  16. const float OFFSETS_K7[STEP_COUNT_K7] = {0.62184, 2.27310, 4.14653};
  17. const uint STEP_COUNT_K9 = 4u;
  18. const float WEIGHTS_K9[STEP_COUNT_K9] = {0.24961, 0.19246, 0.05148, 0.00645};
  19. const float OFFSETS_K9[STEP_COUNT_K9] = {0.64434, 2.37885, 4.29111, 6.21661};
  20. const uint STEP_COUNT_K11 = 5u;
  21. const float WEIGHTS_K11[STEP_COUNT_K11] = {0.19955, 0.18945, 0.08376, 0.02321, 0.00403};
  22. const float OFFSETS_K11[STEP_COUNT_K11] = {0.65319, 2.42547, 4.36803, 6.31412, 8.26479};
  23. const uint STEP_COUNT_K13 = 6u;
  24. const float WEIGHTS_K13[STEP_COUNT_K13] = {0.16501, 0.17507, 0.10112, 0.04268, 0.01316, 0.00296};
  25. const float OFFSETS_K13[STEP_COUNT_K13] = {0.65772, 2.45017, 4.41096, 6.37285, 8.33626, 10.30153};
  26. const int STEP_COUNT_K15 = 7;
  27. const float WEIGHTS_K15[STEP_COUNT_K15] = {0.14090, 0.15927, 0.10715, 0.05747, 0.02457, 0.00837, 0.00228};
  28. const float OFFSETS_K15[STEP_COUNT_K15] = {0.66025, 2.46415, 4.43572, 6.40771, 8.38028, 10.35359, 12.32779};
  29. #if KERNEL_SIZE == 3
  30. #define STEP_COUNT STEP_COUNT_K3
  31. #define WEIGHTS WEIGHTS_K3
  32. #define OFFSETS OFFSETS_K3
  33. #elif KERNEL_SIZE == 5
  34. #define STEP_COUNT STEP_COUNT_K5
  35. #define WEIGHTS WEIGHTS_K5
  36. #define OFFSETS OFFSETS_K5
  37. #elif KERNEL_SIZE == 7
  38. #define STEP_COUNT STEP_COUNT_K7
  39. #define WEIGHTS WEIGHTS_K7
  40. #define OFFSETS OFFSETS_K7
  41. #elif KERNEL_SIZE == 9
  42. #define STEP_COUNT STEP_COUNT_K9
  43. #define WEIGHTS WEIGHTS_K9
  44. #define OFFSETS OFFSETS_K9
  45. #elif KERNEL_SIZE == 11
  46. #define STEP_COUNT STEP_COUNT_K11
  47. #define WEIGHTS WEIGHTS_K11
  48. #define OFFSETS OFFSETS_K11
  49. #elif KERNEL_SIZE == 13
  50. #define STEP_COUNT STEP_COUNT_K13
  51. #define WEIGHTS WEIGHTS_K13
  52. #define OFFSETS OFFSETS_K13
  53. #elif KERNEL_SIZE == 15
  54. #define STEP_COUNT STEP_COUNT_K15
  55. #define WEIGHTS WEIGHTS_K15
  56. #define OFFSETS OFFSETS_K15
  57. #else
  58. #error See file
  59. #endif
  60. #endif