SparrowRenderer/shaders/bloom.frag.glsl

25 lines
764 B
GLSL

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);
}