clip-instance.glsl.ts 455 B

12345678910111213
  1. export default `
  2. #if defined(dClipVariant_instance) && dClipObjectCount != 0
  3. int flag = 0;
  4. #if defined(dClipping)
  5. flag = int(floor(vClipping * 255.0 + 0.5));
  6. #endif
  7. vec4 mCenter = uModel * aTransform * vec4(uInvariantBoundingSphere.xyz, 1.0);
  8. if (clipTest(vec4(mCenter.xyz, uInvariantBoundingSphere.w), flag))
  9. // move out of [ -w, +w ] to 'discard' in vert shader
  10. gl_Position.z = 2.0 * gl_Position.w;
  11. #endif
  12. `;