# 2D Liquid Fill Inside Sphere

Use fV as a progress percent from 0 to 1

Original author: Mirza Beig
2D Liquid Fill Inside Sphere (shadertoy.com)

``````// 2D liquid inside 'sphere' shader.

// Original Author: Mirza Beig
// Godot Implementation: RuverQ

// Feel free troveto use this however you want.
// Modify, learn from it, copy-paste, etc...

// fV = fill value
uniform float fV;

void fragment() {
vec2 uv = ((UV / -0.10)) + vec2(1.25,1.25);

float
sdf=length(uv),c=step(sdf,.85),

vB=smoothstep(.1,.9,sin(uv.x+(PI*.5))-.3),
vBA=vB*sin(TIME*4.)*.1,

fW=(sin(((TIME*2.)+uv.x)*2.)*.05)+vBA,
bW=(sin(((TIME*-2.)+uv.x)*2.+PI)*.05)-vBA,

fA=(sin(TIME*4.)*.05)*vB,

fP=fV * 2.3 +(sin((TIME)*PI)*.1) - 1.1,

fF=step(uv.y,(fA+fW)+fP)*c,
bF=step(uv.y,(-fA+bW)+fP)*c;

COLOR =
vec4((step(sdf,1.)-step(sdf,.9))+
(fF+(clamp(bF-fF,0.,1.)*.8))+
clamp(pow((sdf+.01)*
((1.-(fF+bF))*c),5.),0.,1.));

}

``````
progress bar

## More from RuverQ

### Tiled texture inside of mask

Subscribe
Notify of

1 Comment
Inline Feedbacks
Andrew
1 hour ago

Setting this makes the animation cover the entire texture:

`vec2 uv = ((UV / -0.5)) + vec2(1,1);`

But does anyone know how to change the color?

Last edited 1 hour ago by Andrew