uniform vec2 resolution; uniform mat2 matrix; uniform sampler2D image; void main(void) { vec2 position = 2.0*gl_FragCoord.xy/resolution - vec2(1.0); gl_FragColor = texture2D(image, matrix*position); } uniform sampler2D image1; uniform sampler2D image2; uniform vec2 resolution; uniform float time; void main(void) { float t = (cos(time)+1.0)/2.0; vec2 p = gl_FragCoord.xy/resolution; vec4 frontPixel= texture2D(image1, p); vec4 backPixel = texture2D(image2, p); gl_FragColor = mix(backPixel,frontPixel,t); }