distanceRGBA_frag.glsl.js 729 B

123456789101112131415161718192021222324252627282930313233
  1. export default /* glsl */`
  2. #define DISTANCE
  3. uniform vec3 referencePosition;
  4. uniform float nearDistance;
  5. uniform float farDistance;
  6. varying vec3 vWorldPosition;
  7. #include <common>
  8. #include <packing>
  9. #include <uv_pars_fragment>
  10. #include <map_pars_fragment>
  11. #include <alphamap_pars_fragment>
  12. #include <clipping_planes_pars_fragment>
  13. void main () {
  14. #include <clipping_planes_fragment>
  15. vec4 diffuseColor = vec4( 1.0 );
  16. #include <map_fragment>
  17. #include <alphamap_fragment>
  18. #include <alphatest_fragment>
  19. float dist = length( vWorldPosition - referencePosition );
  20. dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
  21. dist = saturate( dist ); // clamp to [ 0, 1 ]
  22. gl_FragColor = packDepthToRGBA( dist );
  23. }
  24. `;