StripeMaterial.glsl 771 B

1234567891011121314151617181920212223
  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. material.diffuse = color.rgb;
  16. material.alpha = color.a;
  17. return material;
  18. }