FadeMaterial.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //This file is automatically rebuilt by the Cesium build process.
  2. /*global define*/
  3. define(function() {
  4. "use strict";
  5. return "uniform vec4 fadeInColor;\n\
  6. uniform vec4 fadeOutColor;\n\
  7. uniform float maximumDistance;\n\
  8. uniform bool repeat;\n\
  9. uniform vec2 fadeDirection;\n\
  10. uniform vec2 time;\n\
  11. \n\
  12. float getTime(float t, float coord)\n\
  13. {\n\
  14. float scalar = 1.0 / maximumDistance;\n\
  15. float q = distance(t, coord) * scalar;\n\
  16. if (repeat)\n\
  17. {\n\
  18. float r = distance(t, coord + 1.0) * scalar;\n\
  19. float s = distance(t, coord - 1.0) * scalar;\n\
  20. q = min(min(r, s), q);\n\
  21. }\n\
  22. return clamp(q, 0.0, 1.0);\n\
  23. }\n\
  24. \n\
  25. czm_material czm_getMaterial(czm_materialInput materialInput)\n\
  26. {\n\
  27. czm_material material = czm_getDefaultMaterial(materialInput);\n\
  28. \n\
  29. vec2 st = materialInput.st;\n\
  30. float s = getTime(time.x, st.s) * fadeDirection.s;\n\
  31. float t = getTime(time.y, st.t) * fadeDirection.t;\n\
  32. \n\
  33. float u = length(vec2(s, t));\n\
  34. vec4 color = mix(fadeInColor, fadeOutColor, u);\n\
  35. \n\
  36. material.emission = color.rgb;\n\
  37. material.alpha = color.a;\n\
  38. \n\
  39. return material;\n\
  40. }\n\
  41. ";
  42. });