#include cycle-mix.glsl vec4 cycleGradient(vec4 a, vec4 b, float x) { x *= 0.5; return vec4( cycleMix(vec2(a.x, b.x), x), cycleMix(vec2(a.y, b.y), x), cycleMix(vec2(a.z, b.z), x), cycleMix(vec2(a.w, b.w), x) ); } vec4 cycleGradient(vec4 a, vec4 b, vec4 c, float x) { x *= 0.6666667; return vec4( cycleMix(vec3(a.x, b.x, c.x), x), cycleMix(vec3(a.y, b.y, c.y), x), cycleMix(vec3(a.z, b.z, c.z), x), cycleMix(vec3(a.w, b.w, c.w), x) ); } vec4 cycleGradient(vec4 a, vec4 b, vec4 c, vec4 d, float x) { x *= 0.75; return vec4( cycleMix(vec4(a.x, b.x, c.x, d.x), x), cycleMix(vec4(a.y, b.y, c.y, d.y), x), cycleMix(vec4(a.z, b.z, c.z, d.z), x), cycleMix(vec4(a.w, b.w, c.w, d.w), x) ); }