glowBlurPostProcess.fragment.js 1.2 KB

123456789101112131415
  1. // Do not edit.
  2. import { ShaderStore } from "../Engines/shaderStore.js";
  3. const name = "glowBlurPostProcessPixelShader";
  4. const shader = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform vec2 direction;uniform float blurWidth;float getLuminance(vec3 color)
  5. {return dot(color,vec3(0.2126,0.7152,0.0722));}
  6. #define CUSTOM_FRAGMENT_DEFINITIONS
  7. void main(void)
  8. {float weights[7];weights[0]=0.05;weights[1]=0.1;weights[2]=0.2;weights[3]=0.3;weights[4]=0.2;weights[5]=0.1;weights[6]=0.05;vec2 texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);vec2 texelStep=texelSize*direction*blurWidth;vec2 start=vUV-3.0*texelStep;vec4 baseColor=vec4(0.,0.,0.,0.);vec2 texelOffset=vec2(0.,0.);for (int i=0; i<7; i++)
  9. {vec4 texel=texture2D(textureSampler,start+texelOffset);baseColor.a+=texel.a*weights[i];float luminance=getLuminance(baseColor.rgb);float luminanceTexel=getLuminance(texel.rgb);float choice=step(luminanceTexel,luminance);baseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;texelOffset+=texelStep;}
  10. gl_FragColor=baseColor;}`;
  11. // Sideeffect
  12. ShaderStore.ShadersStore[name] = shader;
  13. /** @internal */
  14. export const glowBlurPostProcessPixelShader = { name, shader };
  15. //# sourceMappingURL=glowBlurPostProcess.fragment.js.map