PolylineGlowMaterial.glsl 727 B

123456789101112131415161718192021222324252627
  1. uniform vec4 color;
  2. uniform float glowPower;
  3. uniform float taperPower;
  4. varying float v_width;
  5. czm_material czm_getMaterial(czm_materialInput materialInput)
  6. {
  7. czm_material material = czm_getDefaultMaterial(materialInput);
  8. vec2 st = materialInput.st;
  9. float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5);
  10. if (taperPower <= 0.99999) {
  11. glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5));
  12. }
  13. vec4 fragColor;
  14. fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb);
  15. fragColor.a = clamp(0.0, 1.0, glow) * color.a;
  16. fragColor = czm_gammaCorrect(fragColor);
  17. material.emission = fragColor.rgb;
  18. material.alpha = fragColor.a;
  19. return material;
  20. }