geneross/compare_med.glsl
2017-04-24 17:25:26 +00:00

20 lines
567 B
GLSL

// Compute the pixelwise diff between two textures.
// Computes the diff for each color chanel separately (r, g, b).
// Assumes both images are not transparent.
// try isampler2D, ivec4 etc.? Probably not
uniform vec2 size;
uniform vec2 offs;
uniform sampler2D base;
uniform sampler2D curr;
void main(void)
{
vec2 pos = (gl_FragCoord.xy-offs)/size;
pos.y = 1.0 - pos.y;
vec4 color = texture2D(curr, pos);
vec4 basecolor = texture2D(base, pos);
color.xyz = color.xyz - basecolor.xyz;
color.xyz = (vec3(1.0, 1.0, 1.0) + color.xyz)/2.0;
gl_FragColor = color;
}