linedashed.glsl.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. export const vertex = /* glsl */`
  2. uniform float scale;
  3. attribute float lineDistance;
  4. varying float vLineDistance;
  5. #include <common>
  6. #include <color_pars_vertex>
  7. #include <fog_pars_vertex>
  8. #include <morphtarget_pars_vertex>
  9. #include <logdepthbuf_pars_vertex>
  10. #include <clipping_planes_pars_vertex>
  11. void main() {
  12. vLineDistance = scale * lineDistance;
  13. #include <color_vertex>
  14. #include <begin_vertex>
  15. #include <morphtarget_vertex>
  16. #include <project_vertex>
  17. #include <logdepthbuf_vertex>
  18. #include <clipping_planes_vertex>
  19. #include <fog_vertex>
  20. }
  21. `;
  22. export const fragment = /* glsl */`
  23. uniform vec3 diffuse;
  24. uniform float opacity;
  25. uniform float dashSize;
  26. uniform float totalSize;
  27. varying float vLineDistance;
  28. #include <common>
  29. #include <color_pars_fragment>
  30. #include <fog_pars_fragment>
  31. #include <logdepthbuf_pars_fragment>
  32. #include <clipping_planes_pars_fragment>
  33. void main() {
  34. #include <clipping_planes_fragment>
  35. if ( mod( vLineDistance, totalSize ) > dashSize ) {
  36. discard;
  37. }
  38. vec3 outgoingLight = vec3( 0.0 );
  39. vec4 diffuseColor = vec4( diffuse, opacity );
  40. #include <logdepthbuf_fragment>
  41. #include <color_fragment>
  42. outgoingLight = diffuseColor.rgb; // simple shader
  43. #include <output_fragment>
  44. #include <tonemapping_fragment>
  45. #include <encodings_fragment>
  46. #include <fog_fragment>
  47. #include <premultiplied_alpha_fragment>
  48. }
  49. `;