[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); } 
 
			
		 
			
		 
			
			 
			
		