added swirl effect
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#version 110
|
||||
|
||||
// Swirl effect parameters
|
||||
uniform float radius;
|
||||
uniform float angle;
|
||||
uniform float center_x;
|
||||
uniform float center_y;
|
||||
uniform vec2 resolution;
|
||||
|
||||
uniform sampler2D myTexture;
|
||||
varying vec2 vTexCoord;
|
||||
|
||||
void main(void) {
|
||||
vec2 center = vec2(center_x, center_y);
|
||||
|
||||
vec2 uv = vTexCoord.st;
|
||||
|
||||
vec2 tc = uv * resolution;
|
||||
tc -= center;
|
||||
float dist = length(tc);
|
||||
if (dist < radius) {
|
||||
float percent = (radius - dist) / radius;
|
||||
float theta = percent * percent * (-angle*0.05) * 8.0;
|
||||
float s = sin(theta);
|
||||
float c = cos(theta);
|
||||
tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c)));
|
||||
}
|
||||
tc += center;
|
||||
vec3 color = texture2D(myTexture, tc / resolution).rgb;
|
||||
gl_FragColor = vec4(color, 1.0);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<effect name="Swirl" category="Distort">
|
||||
<row name="Radius">
|
||||
<field type="double" min="0" default="10" id="radius"/>
|
||||
</row>
|
||||
<row name="Angle">
|
||||
<field type="double" default="10" id="angle"/>
|
||||
</row>
|
||||
<row name="Center">
|
||||
<field type="double" default="0" id="center_x"/>
|
||||
<field type="double" default="0" id="center_y"/>
|
||||
</row>
|
||||
<shader vert="common.vert" frag="swirl.frag"/>
|
||||
</effect>
|
||||
Reference in New Issue
Block a user