Bloom.hx 533 B

1234567891011121314151617181920212223
  1. package h3d.shader.pbr;
  2. class Bloom extends ScreenShader {
  3. static var SRC = {
  4. var albedo : Vec3;
  5. var emissive : Float;
  6. @param var hdr : Sampler2D;
  7. @param var threshold : Float;
  8. @param var intensity : Float;
  9. function fragment() {
  10. pixelColor = hdr.get(calculatedUV);
  11. var lum = pixelColor.rgb.dot(vec3(0.2126, 0.7152, 0.0722));
  12. if( lum < threshold ) pixelColor.rgb = vec3(0.) else pixelColor.rgb *= intensity * (lum - threshold) / lum;
  13. pixelColor.rgb += albedo * emissive;
  14. }
  15. };
  16. }