color-transition-controller-composite.frag 466 Bytes
precision mediump float;

const float kStepsilon = 1e-2;

uniform sampler2D sColor;
uniform sampler2D sFlowMap;

uniform float uFlow;
uniform vec3 uRgb[2];

varying vec2 vUv;
varying vec2 vUvFlow;

void main()
{
  vec4 colorAlpha = texture2D(sColor, vUv);
  float flow = smoothstep(.5 - kStepsilon, .5 + kStepsilon, clamp(uFlow + texture2D(sFlowMap, vUvFlow).r, 0., 1.));

  gl_FragColor = vec4(mix(colorAlpha.rgb, mix(uRgb[0], uRgb[1], flow), colorAlpha.a), 1.);
}