// Author: gre // License: MIT // Description: A crossfade in which each color channel changes at a different time // Tags: fade, color // Usage: fromStep and toStep must be in [0.0, 1.0] range // and all(fromStep) must be < all(toStep) // @range(0, 1) When each channel (r, g, b, a) starts changing uniform vec4 fromStep; // = vec4(0.0, 0.2, 0.4, 0.0) // @range(0, 1) When each channel (r, g, b, a) finishes changing uniform vec4 toStep; // = vec4(0.6, 0.8, 1.0, 1.0) vec4 transition (vec2 uv) { vec4 a = getFromColor(uv); vec4 b = getToColor(uv); return mix(a, b, smoothstep(fromStep, toStep, vec4(progress))); }