• Hello!!

    How Can I do for get a kaleidoscope effect??

    Is ther any pluging??

    Thanks!!



  • @dbini 

    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

    http://techlife.sg/FFGLVol001/

    http://www.dvizion.net/portfolio/ffgl-kaleidofx/


  • @cris-rodríguez-g

    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

    Kaleidoscope.bundle.zip

  • Beta Platinum

    @jandraka said:

    Vuo a simple and fast Kaleidoscope

     You beat me to it!

    Best wishes

    Russell


  • @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); }