[ANSWERED] Kaleidoscope
-
Hello!!
How Can I do for get a kaleidoscope effect??
Is ther any pluging??
Thanks!!
-
-
I tried all of them, out of being curious. but i get an "error" message on all of them. which is quite common in shader toy for me :(
-
@gapworks there also a few FFGL ones that costs a little bit money
-
Hi,
I have created with Vuo a simple and fast Kaleidoscope FFGL. Maybe I can help you. My system is MBP 10.15.2
Best
javi
-
-
@gapworks said:
I tried all of them, out of being curious. but i get an "error" message on all of them. which is quite common in shader toy for me :(
Here's one converted from an ISF shader by Vidvox. Has a lot of different paramters. Paste this code into a GLSL Shader and you'll be good to go.
Best Wishes,
Mark// CREDIT: VIDVOX // CONVERTED FROM ISF // // ISADORA_FLOAT_PARAM(sides, 5e{l, 1, 32, 6, "No help available.") // ISADORA_FLOAT_PARAM(angle, 0s&v, -1, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(slidex, hH=w, 0, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(slidey, K$=M, 0, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(center_x, B%j7, 0, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(center_y, 5{?+, 0, 1, 0, "No help available.") #define center vec2(center_x,center_y) uniform sampler2D tex0; uniform float sides; uniform float angle; uniform float slidex; uniform float slidey; uniform float center_x; uniform float center_y; uniform vec2 resolution; const float tau = 6.28318530718; void main() { // normalize to the center vec2 loc = resolution * vec2(gl_TexCoord[0].xy[0],gl_TexCoord[0].xy[1]); float r = distance(center*resolution, loc); float a = atan ((loc.y-center.y*resolution.y),(loc.x-center.x*resolution.x)); // kaleidoscope a = mod(a, tau/sides); a = abs(a - tau/sides/2.); loc.x = r * cos(a + tau * angle); loc.y = r * sin(a + tau * angle); loc = (center*resolution + loc) / resolution; loc.x = mod(loc.x + slidex, 1.0); loc.y = mod(loc.y + slidey, 1.0); // sample the image if (loc.x < 0.0) { loc.x = mod(abs(loc.x), 1.0); } if (loc.y < 0.0) { loc.y = mod(abs(loc.y),1.0); } if (loc.x > 1.0) { loc.x = mod(abs(1.0-loc.x),1.0); } if(loc.y > 1.0) { loc.y = mod(abs(1.0-loc.y),1.0); } gl_FragColor = texture2D(tex0, loc); }
-
Thank you @mark I've been looking for a Kaleidoscope Shader for quite some time, this is such a great thing to find in the forum today!!
@mark said:
// CREDIT: VIDVOX // CONVERTED FROM ISF // // ISADORA_FLOAT_PARAM(sides, 5e{l, 1, 32, 6, "No help available.") // ISADORA_FLOAT_PARAM(angle, 0s&v, -1, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(slidex, hH=w, 0, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(slidey, K$=M, 0, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(center_x, B%j7, 0, 1, 0, "No help available.") // ISADORA_FLOAT_PARAM(center_y, 5{?+, 0, 1, 0, "No help available.") #define center vec2(center_x,center_y) uniform sampler2D tex0; uniform float sides; uniform float angle; uniform float slidex; uniform float slidey; uniform float center_x; uniform float center_y; uniform vec2 resolution; const float tau = 6.28318530718; void main() { // normalize to the center vec2 loc = resolution * vec2(gl_TexCoord[0].xy[0],gl_TexCoord[0].xy[1]); float r = distance(center*resolution, loc); float a = atan ((loc.y-center.y*resolution.y),(loc.x-center.x*resolution.x)); // kaleidoscope a = mod(a, tau/sides); a = abs(a - tau/sides/2.); loc.x = r * cos(a + tau * angle); loc.y = r * sin(a + tau * angle); loc = (center*resolution + loc) / resolution; loc.x = mod(loc.x + slidex, 1.0); loc.y = mod(loc.y + slidey, 1.0); // sample the image if (loc.x < 0.0) { loc.x = mod(abs(loc.x), 1.0); } if (loc.y < 0.0) { loc.y = mod(abs(loc.y),1.0); } if (loc.x > 1.0) { loc.x = mod(abs(1.0-loc.x),1.0); } if(loc.y > 1.0) { loc.y = mod(abs(1.0-loc.y),1.0); } gl_FragColor = texture2D(tex0, loc); }