distance.glsl.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. export const vertex = /* glsl */`
  2. #define DISTANCE
  3. varying vec3 vWorldPosition;
  4. #include <common>
  5. #include <batching_pars_vertex>
  6. #include <uv_pars_vertex>
  7. #include <displacementmap_pars_vertex>
  8. #include <morphtarget_pars_vertex>
  9. #include <skinning_pars_vertex>
  10. #include <clipping_planes_pars_vertex>
  11. void main() {
  12. #include <uv_vertex>
  13. #include <batching_vertex>
  14. #include <skinbase_vertex>
  15. #include <morphinstance_vertex>
  16. #ifdef USE_DISPLACEMENTMAP
  17. #include <beginnormal_vertex>
  18. #include <morphnormal_vertex>
  19. #include <skinnormal_vertex>
  20. #endif
  21. #include <begin_vertex>
  22. #include <morphtarget_vertex>
  23. #include <skinning_vertex>
  24. #include <displacementmap_vertex>
  25. #include <project_vertex>
  26. #include <worldpos_vertex>
  27. #include <clipping_planes_vertex>
  28. vWorldPosition = worldPosition.xyz;
  29. }
  30. `;
  31. export const fragment = /* glsl */`
  32. #define DISTANCE
  33. uniform vec3 referencePosition;
  34. uniform float nearDistance;
  35. uniform float farDistance;
  36. varying vec3 vWorldPosition;
  37. #include <common>
  38. #include <uv_pars_fragment>
  39. #include <map_pars_fragment>
  40. #include <alphamap_pars_fragment>
  41. #include <alphatest_pars_fragment>
  42. #include <alphahash_pars_fragment>
  43. #include <clipping_planes_pars_fragment>
  44. void main () {
  45. vec4 diffuseColor = vec4( 1.0 );
  46. #include <clipping_planes_fragment>
  47. #include <map_fragment>
  48. #include <alphamap_fragment>
  49. #include <alphatest_fragment>
  50. #include <alphahash_fragment>
  51. float dist = length( vWorldPosition - referencePosition );
  52. dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
  53. dist = saturate( dist ); // clamp to [ 0, 1 ]
  54. gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 );
  55. }
  56. `;
粤ICP备19079148号