FadeMaterial.js 1.1 KB

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