points.frag.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  5. */
  6. export const points_frag = `
  7. precision highp float;
  8. precision highp int;
  9. #include common
  10. #include common_frag_params
  11. #include color_frag_params
  12. #include common_clip
  13. const vec2 center = vec2(0.5);
  14. const float radius = 0.5;
  15. void main(){
  16. #include clip_pixel
  17. float fragmentDepth = gl_FragCoord.z;
  18. #include assign_material_color
  19. #if defined(dPointStyle_circle)
  20. float dist = distance(gl_PointCoord, center);
  21. if (dist > radius) discard;
  22. #elif defined(dPointStyle_fuzzy)
  23. float dist = distance(gl_PointCoord, center);
  24. float fuzzyAlpha = 1.0 - smoothstep(0.0, radius, dist);
  25. if (fuzzyAlpha < 0.0001) discard;
  26. #endif
  27. #if defined(dRenderVariant_pick)
  28. #include check_picking_alpha
  29. gl_FragColor = material;
  30. #elif defined(dRenderVariant_depth)
  31. gl_FragColor = material;
  32. #elif defined(dRenderVariant_marking)
  33. gl_FragColor = material;
  34. #elif defined(dRenderVariant_color)
  35. gl_FragColor = material;
  36. #if defined(dPointStyle_fuzzy)
  37. gl_FragColor.a *= fuzzyAlpha;
  38. #endif
  39. #include apply_marker_color
  40. #include apply_fog
  41. #include wboit_write
  42. #endif
  43. }
  44. `;