Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. vec4 simulate(vec4 input) {
  2. if (colorBlind < 0.5) {
  3. return inp;
  4. }
  5.  
  6. float L = (17.8824 * inp.r) + (43.5161 * inp.g) + (4.11935 * inp.b);
  7. float M = (3.45565 * inp.r) + (27.1554 * inp.g) + (3.86714 * inp.b);
  8. float S = (0.0299566 * inp.r) + (0.184309 * inp.g) + (1.46709 * inp.b);
  9.  
  10. float l = 0.0;
  11. float m = 0.0;
  12. float s = 0.0;
  13.  
  14. if (colorBlind < 1.5) {
  15. l = 0.0 * L + 2.02344 * M + -2.52581 * S;
  16. m = 0.0 * L + 1.0 * M + 0.0 * S;
  17. s = 0.0 * L + 0.0 * M + 1.0 * S;
  18. } else if (colorBlind < 2.5) {
  19. l = 1.0 * L + 0.0 * M + 0.0 * S;
  20. m = 0.494207 * L + 0.0 * M + 1.24827 * S;
  21. s = 0.0 * L + 0.0 * M + 1.0 * S;
  22. } else {
  23. l = 1.0 * L + 0.0 * M + 0.0 * S;
  24. m = 0.0 * L + 1.0 * M + 0.0 * S;
  25. s = -0.395913 * L + 0.801109 * M + 0.0 * S;
  26. }
  27.  
  28. vec4 error = vec4(0.0);
  29.  
  30. error.r = (0.0809444479 * l) + (-0.130504409 * m) + (0.116721066 * s);
  31. error.g = (-0.0102485335 * l) + (0.0540193266 * m) + (-0.113614708 * s);
  32. error.b = (-0.000365296938 * l) + (-0.00412161469 * m) + (0.693511405 * s);
  33. error.a = 1.0;
  34.  
  35. if (correct > 0.5) {
  36. error = (inp - error);
  37.  
  38. vec4 correction;
  39. correction.r = 0.0;
  40. correction.g = (error.r * 0.7) + (error.g * 1.0);
  41. correction.b = (error.r * 0.7) + (error.b * 1.0);
  42.  
  43. correction = inp + correction;
  44. correction.a = inp.a;
  45.  
  46. return correction.rgba;
  47. } else {
  48. return error.rgba;
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement