diff --git a/effects/boxblur.frag b/effects/boxblur.frag index ecf51b97a..ba366ec08 100644 --- a/effects/boxblur.frag +++ b/effects/boxblur.frag @@ -46,6 +46,6 @@ void main(void) { gl_FragColor += texture2D(image, (vec2(gl_FragCoord.x, gl_FragCoord.y+i))/resolution)*(divider); } } - } - } + } + } } \ No newline at end of file diff --git a/effects/directionalblur.frag b/effects/directionalblur.frag new file mode 100644 index 000000000..5ca6d8e50 --- /dev/null +++ b/effects/directionalblur.frag @@ -0,0 +1,26 @@ +#version 110 + +#define M_PI 3.1415926535897932384626433832795 + +uniform sampler2D image; + +uniform float angle; +uniform float length; + +uniform vec2 resolution; + +void main(void) { + float degrees = (angle*M_PI)/180.0; + float divider = 1.0 / ((length*2.0)+1.0); + float sin_angle = sin(degrees); + float cos_angle = cos(degrees); + + gl_FragColor = texture2D(image, gl_FragCoord.xy/resolution)*(divider); + for (float i=1.0;i<=length;i++) { + float y = sin_angle * i; + float x = cos_angle * i; + + gl_FragColor += texture2D(image, vec2(gl_FragCoord.x-x, gl_FragCoord.y-y)/resolution)*(divider); + gl_FragColor += texture2D(image, vec2(gl_FragCoord.x+x, gl_FragCoord.y+y)/resolution)*(divider); + } +} \ No newline at end of file diff --git a/effects/directionalblur.xml b/effects/directionalblur.xml new file mode 100644 index 000000000..9a66dac1d --- /dev/null +++ b/effects/directionalblur.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file