uniform sampler2DRect colorSampler; uniform sampler2DRect blurSampler0; uniform sampler2DRect blurSampler1; uniform sampler2DRect blurSampler2; uniform sampler2DRect blurSampler3; uniform int width; uniform int height; layout(location = 0)out vec3 minMaxMean; layout(location = 1)out vec4 outColor; void main(void) { ivec2 ipos = ivec2(gl_FragCoord.xy); vec3 color = texelFetch(colorSampler, ipos).xyz; vec3 bloom = texelFetch(blurSampler0, ipos).xyz; bloom += texture(blurSampler1, gl_FragCoord.xy/2).xyz; bloom += texture(blurSampler2, gl_FragCoord.xy/4).xyz; bloom += texture(blurSampler3, gl_FragCoord.xy/8).xyz; outColor = vec4(color + bloom/4, 1.0); minMaxMean = vec3(0.2126*color.r + 0.7152*color.g + 0.0722*color.b); }