threepipe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include <packing>
  2. varying vec2 vUv;
  3. #include <alphatest_pars_fragment>
  4. void main() {
  5. vec4 diffuseColor = tDiffuseTexelToLinear (texture2D(tDiffuse, vUv));
  6. #ifdef HAS_TRANSPARENT_TARGET
  7. vec4 transparentColor = tTransparentTexelToLinear (texture2D(tTransparent, vUv));
  8. #else
  9. vec4 transparentColor = vec4(0.0);
  10. #endif
  11. #ifdef HAS_GBUFFER
  12. float depth = getDepth(vUv);
  13. bool isBackground = depth>0.99 && transparentColor.a < 0.001;
  14. #endif
  15. #glMarker
  16. #ifdef HAS_GBUFFER
  17. #if (defined(CLIP_BACKGROUND) && CLIP_BACKGROUND > 0) || defined(CLIP_BACKGROUND_FORCE)
  18. if(isBackground) diffuseColor.a = 0.0;
  19. if(depth>0.99 && transparentColor.a >= 0.001) diffuseColor.a = transparentColor.a;
  20. #endif
  21. if(depth < 0.00001) diffuseColor.a = 0.0;
  22. #endif
  23. #include <alphatest_fragment>
  24. #ifdef OPAQUE
  25. diffuseColor.a = 1.0;
  26. #endif
  27. gl_FragColor = diffuseColor;
  28. //gl_FragColor = isBackground ? vec4(0, 0, 0, 1) : gl_FragColor;
  29. // gl_FragColor = vec4(depth, 0, 0, 1);
  30. #include <colorspace_fragment>
  31. }