Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- shader_type canvas_item;
- uniform vec2 uv0;
- uniform vec2 uv1;
- uniform vec2 uv2;
- uniform vec2 uv3;
- uniform vec2 uv4;
- uniform vec2 uv5;
- uniform vec2 uv6;
- uniform sampler2D texture2;
- uniform float smoothness = 24.0;
- void fragment() {
- vec2 p = UV.xy;
- const int num = 7;
- vec2 v[7];
- v[0] = uv0; v[1] = uv1; v[2] = uv2; v[3] = uv3; v[4] = uv4; v[5] = uv5; v[6] = uv6;
- float d = dot(p-v[0],p-v[0]);
- float s = 1.0;
- int j = num-1;
- for( int i=0; i<num; i++)
- {
- vec2 e = v[j] - v[i];
- vec2 w = p - v[i];
- vec2 b = w - e*clamp( dot(w,e)/dot(e,e), 0.0, 1.0 );
- d = min( d, dot(b,b) );
- j=i;
- }
- d = s*sqrt(d);
- float alpha = 1.0 - exp(-smoothness*abs(d));
- COLOR = vec4( texture(texture2, UV).rgb*alpha + texture(TEXTURE, UV).rgb*(1.0-alpha), 1.0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement