26 lines
734 B
GLSL
26 lines
734 B
GLSL
uniform sampler2DRect minMaxMeanSampler;
|
|
uniform int width;
|
|
uniform int height;
|
|
|
|
layout(location = 0)out vec3 outValues;
|
|
|
|
void main(void) {
|
|
vec3 val[3];
|
|
ivec2 pos = ivec2(gl_FragCoord.xy)*2;
|
|
|
|
// fetching 4 texels
|
|
outValues = texelFetch(minMaxMeanSampler, pos).xyz;
|
|
val[0] = texelFetch(minMaxMeanSampler, pos + ivec2(1, 0)).xyz;
|
|
val[1] = texelFetch(minMaxMeanSampler, pos + ivec2(0, 1)).xyz;
|
|
val[2] = texelFetch(minMaxMeanSampler, pos + ivec2(1, 1)).xyz;
|
|
|
|
// computing min, max, and mean for these 4 texels
|
|
for(int i=0; i<3; ++i)
|
|
{
|
|
outValues.x = min(outValues.x, val[i].x);
|
|
outValues.y = max(outValues.y, val[i].y);
|
|
outValues.z += val[i].z;
|
|
}
|
|
outValues.z /= 4;
|
|
}
|