From b1a90a7f915e7779aad975a70b503788b0a1b228 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Wed, 2 Sep 2015 02:44:16 +0200 Subject: Added some useful postprocessing shaders Shaders come in two flavours: - shaders/gl330: OpenGL 3.3+ (Windows, Linux, OSX) - shaders/gles100: OpenGL ES 2.0 (Android, RPI, HTML5) --- shaders/gl330/swirl.fs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 shaders/gl330/swirl.fs (limited to 'shaders/gl330/swirl.fs') diff --git a/shaders/gl330/swirl.fs b/shaders/gl330/swirl.fs new file mode 100644 index 00000000..18a47cec --- /dev/null +++ b/shaders/gl330/swirl.fs @@ -0,0 +1,41 @@ +#version 330 + +in vec2 fragTexCoord; + +out vec4 fragColor; + +uniform sampler2D texture0; +uniform vec4 tintColor; + +// NOTE: Add here your custom variables + +const float renderWidth = 1280; +const float renderHeight = 720; + +float radius = 250.0; +float angle = 0.8; + +uniform vec2 center = vec2(200, 200); + +void main (void) +{ + vec2 texSize = vec2(renderWidth, renderHeight); + vec2 tc = fragTexCoord*texSize; + tc -= center; + float dist = length(tc); + + if (dist < radius) + { + float percent = (radius - dist)/radius; + float theta = percent*percent*angle*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(texture0, tc/texSize).rgb; + + fragColor = vec4(color, 1.0);; +} \ No newline at end of file -- cgit v1.2.3