writeDepthClamp.glsl 640 B

123456789101112131415161718192021222324252627
  1. // emulated noperspective
  2. #if defined(GL_EXT_frag_depth) && !defined(LOG_DEPTH)
  3. varying float v_WindowZ;
  4. #endif
  5. /**
  6. * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane
  7. * by writing the fragment's depth. See czm_depthClamp for more details.
  8. * <p>
  9. * The shader must enable the GL_EXT_frag_depth extension.
  10. * </p>
  11. *
  12. * @name czm_writeDepthClamp
  13. * @glslFunction
  14. *
  15. * @example
  16. * gl_FragColor = color;
  17. * czm_writeDepthClamp();
  18. *
  19. * @see czm_depthClamp
  20. */
  21. void czm_writeDepthClamp()
  22. {
  23. #if defined(GL_EXT_frag_depth) && !defined(LOG_DEPTH)
  24. gl_FragDepthEXT = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0);
  25. #endif
  26. }