StripeMaterial.glsl 796 B

123456789101112131415161718192021222324
  1. uniform vec4 evenColor;
  2. uniform vec4 oddColor;
  3. uniform float offset;
  4. uniform float repeat;
  5. uniform bool horizontal;
  6. czm_material czm_getMaterial(czm_materialInput materialInput)
  7. {
  8. czm_material material = czm_getDefaultMaterial(materialInput);
  9. // Based on the Stripes Fragment Shader in the Orange Book (11.1.2)
  10. float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal));
  11. float value = fract((coord - offset) * (repeat * 0.5));
  12. float dist = min(value, min(abs(value - 0.5), 1.0 - value));
  13. vec4 currentColor = mix(evenColor, oddColor, step(0.5, value));
  14. vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist);
  15. color = czm_gammaCorrect(color);
  16. material.diffuse = color.rgb;
  17. material.alpha = color.a;
  18. return material;
  19. }