diff options
Diffstat (limited to 'shader/metaball.shader')
-rw-r--r-- | shader/metaball.shader | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/shader/metaball.shader b/shader/metaball.shader new file mode 100644 index 0000000..e7e344e --- /dev/null +++ b/shader/metaball.shader @@ -0,0 +1,15 @@ +extern vec2 distortionFactor; +extern vec2 scaleFactor; +extern number feather; +vec4 effect(vec4 color, Texture tex, vec2 uv, vec2 px) { + // to barrel coordinates + uv = uv * 2.0 - vec2(1.0); + // distort + uv *= scaleFactor; + uv += (uv.yx*uv.yx) * uv * (distortionFactor - 1.0); + number mask = (1.0 - smoothstep(1.0-feather,1.0,abs(uv.x))) + * (1.0 - smoothstep(1.0-feather,1.0,abs(uv.y))); + // to cartesian coordinates + uv = (uv + vec2(1.0)) / 2.0; + return color * Texel(tex, uv) * mask; +}
\ No newline at end of file |