智慧水务管理系统 - 精河县供水工程综合管理平台

12345678910111213141516171819202122232425262728
  1. in vec4 v_pickColor;
  2. in vec4 v_color;
  3. in vec4 v_outlineColor;
  4. in float v_innerRadiusFrac;
  5. void main()
  6. {
  7. // Distance between fragment and point center, 0 to 0.5.
  8. float distanceToCenter = length(gl_PointCoord - vec2(0.5));
  9. float delta = fwidth(distanceToCenter);
  10. float outerLimit = 0.5;
  11. float innerLimit = 0.5 * v_innerRadiusFrac;
  12. float outerAlpha = 1.0 - smoothstep(max(0.0, outerLimit - delta), outerLimit, distanceToCenter);
  13. float innerAlpha = 1.0 - smoothstep(innerLimit - delta, innerLimit, distanceToCenter);
  14. vec4 color = vec4(mix(v_outlineColor.rgb, v_color.rgb, innerAlpha), outerAlpha);
  15. color.a *= mix(v_outlineColor.a, v_color.a, innerAlpha);
  16. if (color.a < 0.005) // matches 0/255 and 1/255
  17. {
  18. discard;
  19. }
  20. out_FragColor = czm_gammaCorrect(color);
  21. czm_writeLogDepth();
  22. }