volumetricLightScatteringPass.fragment.fx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifdef GL_ES
  2. precision highp float;
  3. #endif
  4. #if defined(ALPHATEST) || defined(BASIC_RENDER) || defined(OPACITY)
  5. varying vec2 vUV;
  6. #endif
  7. #if defined(ALPHATEST) || defined(BASIC_RENDER)
  8. uniform sampler2D diffuseSampler;
  9. #endif
  10. #if defined(OPACITY)
  11. uniform sampler2D opacitySampler;
  12. uniform float opacityLevel;
  13. #endif
  14. void main(void)
  15. {
  16. #if defined(ALPHATEST) || defined(BASIC_RENDER)
  17. vec4 diffuseColor = texture2D(diffuseSampler, vUV);
  18. #endif
  19. #ifdef ALPHATEST
  20. if (diffuseColor.a < 0.4)
  21. discard;
  22. #endif
  23. #ifdef OPACITY
  24. vec4 opacityColor = texture2D(opacitySampler, vUV);
  25. float alpha = 1.0;
  26. #ifdef OPACITYRGB
  27. opacityColor.rgb = opacityColor.rgb * vec3(0.3, 0.59, 0.11);
  28. alpha *= (opacityColor.x + opacityColor.y + opacityColor.z) * opacityLevel;
  29. #else
  30. alpha *= opacityColor.a * opacityLevel;
  31. #endif
  32. #if defined(BASIC_RENDER)
  33. gl_FragColor = vec4(diffuseColor.rgb, alpha);
  34. #else
  35. gl_FragColor = vec4(0.0, 0.0, 0.0, alpha);
  36. #endif
  37. gl_FragColor.a = alpha;
  38. #else
  39. #ifndef BASIC_RENDER
  40. gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
  41. #else
  42. gl_FragColor = diffuseColor;
  43. #endif
  44. #endif
  45. }