mlabonne's picture
upload demo files (#1)
01488bc
uniform sampler2D tFluid;
uniform vec3 uColor;
uniform vec3 uBackgroundColor;
uniform float uDistort;
uniform float uIntensity;
uniform float uRainbow;
uniform float uBlend;
uniform float uShowBackground;
void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
vec3 fluidColor = texture2D(tFluid, uv).rgb;
vec2 distortedUv = uv - fluidColor.rg * uDistort * 0.001;
vec4 texture = texture2D(inputBuffer, distortedUv);
float intensity = length(fluidColor) * uIntensity * 0.0001;
vec3 selectedColor = uColor * length(fluidColor);
vec4 colorForFluidEffect = vec4(uRainbow == 1.0 ? fluidColor : selectedColor, 1.0);
vec4 computedBgColor = uShowBackground != 0.0 ? vec4(uBackgroundColor, 1.0) : vec4(0.0, 0.0, 0.0, 0.0);
outputColor = mix(texture, colorForFluidEffect, intensity);
vec4 computedFluidColor = mix(texture, colorForFluidEffect, uBlend * 0.01);
vec4 finalColor;
if(texture.a < 0.1) {
finalColor = mix(computedBgColor, colorForFluidEffect, intensity);
} else {
finalColor = mix(computedFluidColor, computedBgColor, 1.0 - texture.a);
}
outputColor = finalColor;
}