// Author: Travis Fischer // License: MIT // Description: A crossfade in which a displacement map (an extra grayscale texture) warps both images // Tags: displace, distort, blend // // Adapted from a Codrops article by Robin Delaporte // https://tympanus.net/Development/DistortionHoverEffect uniform sampler2D displacementMap; // @param Strength of the displacement uniform float strength; // = 0.5 vec4 transition (vec2 uv) { float displacement = texture2D(displacementMap, uv).r * strength; vec2 uvFrom = vec2(uv.x + progress * displacement, uv.y); vec2 uvTo = vec2(uv.x - (1.0 - progress) * displacement, uv.y); return mix( getFromColor(uvFrom), getToColor(uvTo), progress ); }