ElevationContourMaterial.glsl 952 B

123456789101112131415161718192021222324252627282930
  1. #ifdef GL_OES_standard_derivatives
  2. #extension GL_OES_standard_derivatives : enable
  3. #endif
  4. uniform vec4 color;
  5. uniform float spacing;
  6. uniform float width;
  7. czm_material czm_getMaterial(czm_materialInput materialInput)
  8. {
  9. czm_material material = czm_getDefaultMaterial(materialInput);
  10. float distanceToContour = mod(materialInput.height, spacing);
  11. #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
  12. float dxc = abs(dFdx(materialInput.height));
  13. float dyc = abs(dFdy(materialInput.height));
  14. float dF = max(dxc, dyc) * czm_pixelRatio * width;
  15. float alpha = (distanceToContour < dF) ? 1.0 : 0.0;
  16. #else
  17. // If no derivatives available (IE 10?), use pixel ratio
  18. float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0;
  19. #endif
  20. vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a));
  21. material.diffuse = outColor.rgb;
  22. material.alpha = outColor.a;
  23. return material;
  24. }