• Products
    • Isadora
    • Get It
    • ADD-ONS
    • IzzyCast
    • Get It
  • Forum
  • Help
  • Werkstatt
  • Newsletter
  • Impressum
  • Dsgvo
  • Press
  • Isadora
  • Get It
  • ADD-ONS
  • IzzyCast
  • Get It
  • Press
  • Dsgvo
  • Impressum

Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags

    [ANSWERED] 3rd Party FFGL Kaleidoscope Plugin

    Third Party Software
    5
    13
    1026
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Mr_J
      Mr_J @mark_m last edited by

      thanks @mark_m

      i've already got the one you shared (screenshot below) but it's not the same as the one i'm after

      But appreciate your help

      Rgds, Mr J

      Izzy 4.0.2 | MBP (16-inch, 2023) M2 Max 96GB | macOS 13.2.1
      Izzy 3.2.6 | MBP (16-inch, 2019) 2.3 GHz 8-Core i9 64GB AMD Radeon Pro 5600M 8 GB | macOS 10.15.7

      1 Reply Last reply Reply Quote 0
      • Woland
        Woland Tech Staff @Mr_J last edited by Woland

        @mark_m 

        User Actors have a red bar across the top in Isadora 4. This one is orange, which means its a video effect.


        @mr_j

        It's a 3rd-party FFGL effect. The lack of spaces between words and the capital letters used in the inputs' names indicate that it isn't a native Isadora actor, nor is it one of our FFGL plugins because its name doesn't start with "FFGL". (I can also tell because I have the same one in my FFGL effect bin.)

        TroikaTronix Technical Support
        New Support Ticket: https://support.troikatronix.com/support/tickets/new
        Support Policy: https://support.troikatronix.com/support/solutions/articles/13000064762
        Add-Ons: https://troikatronix.com/add-ons/ & https://troikatronix.com/add-ons/?u=woland
        Professional Services: https://support.troikatronix.com/support/solutions/articles/13000109444

        | Isadora Version: all of them | Mac Pro (Late 2013), macOS 10.14.6, 3.5GHz 6-core, 1TB SSD, 64GB RAM, Dual AMD FirePro D700s |

        1 Reply Last reply Reply Quote 0
        • Woland
          Woland Tech Staff @mark_m last edited by

          @mark_m said:

          Here's a link to my variations: Version 4https://www.dropbox.com/scl/fi...Version" class="redactor-linkify-object">https://www.dropbox.com/scl/fi... 3https://www.dropbox.com/scl/fi...

           Would love it if you uploaded these to the Add-Ons Page (link in my signature) if you haven't already :)

          TroikaTronix Technical Support
          New Support Ticket: https://support.troikatronix.com/support/tickets/new
          Support Policy: https://support.troikatronix.com/support/solutions/articles/13000064762
          Add-Ons: https://troikatronix.com/add-ons/ & https://troikatronix.com/add-ons/?u=woland
          Professional Services: https://support.troikatronix.com/support/solutions/articles/13000109444

          | Isadora Version: all of them | Mac Pro (Late 2013), macOS 10.14.6, 3.5GHz 6-core, 1TB SSD, 64GB RAM, Dual AMD FirePro D700s |

          1 Reply Last reply Reply Quote 0
          • J
            jandraka @Mr_J last edited by jandraka

            @mr_j

            Hi,

            I think I uploaded that plugin. It was made with Vuo app. I attached a new version. I hope it works. It's only for Mac!!
            Best
            Javi

            FFGL Plugin

            MBP M2 Max 32 GB. MacOS 13.7.3 Isadora 3.2.6 - 4.0.7

            1 Reply Last reply Reply Quote 0
            • J
              jandraka @Mr_J last edited by

              @mr_j

              Sorry, the link I had attached was not correct. It is now fine.

              FFGL Plugin


              Best

              Javi

              MBP M2 Max 32 GB. MacOS 13.7.3 Isadora 3.2.6 - 4.0.7

              1 Reply Last reply Reply Quote 0
              • gapworks
                gapworks last edited by gapworks

                I have another question to the topic. I use the official Isadora TT Kaleidoscope. I miss 2 things in this actor. 

                Speed Change and reverse mode. Any help highly appreciated ! I need it by tmw.

                best p.

                Running MBP2017 / Ventura Osx 13.6.7 / 16 GB 2133 MHz LPDDR3 / Intel HD Graphics 630 1536 MB / Latest Isadora Version / www.gapworks.at / located in Vienna Austria

                Woland 1 Reply Last reply Reply Quote 0
                • Woland
                  Woland Tech Staff @gapworks last edited by

                  @gapworks said:

                  Speed Change and reverse mode. Any help highly appreciated ! I need it by tmw.

                   I don't have time to do it for you by tomorrow, but I've actually had a large amount of success workshopping GLSL Shaders with ChatGPT. If you copy the GLSL Shader code into there, tell it you want additional inputs, tell it what you want those inputs to do, and tell it to match the special formatting used for GLSL Shaders in Isadora by feeding it the following text from part 3 of the TroikaTronix GLSL Shader Tutorial:

                  The really exciting opportunity offered by the GLSL Shader actor is the ability to manipulate shader parameters in real time. Shaders accept real-time input through a mechanism known as uniform variables. For example, if you wanted the shader to receive a floating point number, you would add a line like this.
                  uniform float myVariableName;
                  This defines a floating point number called myVariableName as an input. Then, you would use that variable in your code as needed. The trick here is to make that variable available to you as an input to the GLSL Shader actor. This is achieved using a special comment line that you add to the shader like this
                  // ISADORA_FLOAT_PARAM(name, id, min, max, default, "help text");
                  In OpenGL Shader Language, any line that starts with "//" is a considered to be a comment; in other words, it is ignored by the compiler. But it is not ignored by Isadora. Using comments like the one above, you can create an input for the GLSL Shader actor that sends it's value to a uniform variable in the shader
                  Let's go though each part of this special comment in detail
                  // ISADORA_FLOAT_PARAM — This portion simply identified what kind of parameter is being defined. In this case, single floating point number.
                  name — This is where you define the name of the variable. This name must exactly correspond to the variable name given in the uniform variable — statement in the shader code. You cannot include spaces in this name; if you need a space, use the underscore (_) character instead.
                  id — This identifier, which can be from 1 to 4 characters long, uniquely identifies the input. Should you re-arrange the order of the inputs, Isadora uses this identifier to ensure the links to that input are maintained. For each shader program, this identifier must be unique.
                  min — For numeric parameters, this defines the minimum possible value for the input.
                  max — For numeric parameters, this defines the maximum possible value for the input.
                  default — For numeric parameters, this defines the the default value for this input when the actor is added to the scene. This input is only meaningful if you add the source code for this shader to the Isadora's GLSL Plugins file. (More on this feature later.)
                  "help text" — This defines the help text that will appear in the information view for this input. If you share your shader code, you can help those who use it by providing useful, descriptive information about this input. Isadora's philosophy has always been to make it easy for the user to use the program; giving useful details in the help text supports that philosophy.

                  TroikaTronix Technical Support
                  New Support Ticket: https://support.troikatronix.com/support/tickets/new
                  Support Policy: https://support.troikatronix.com/support/solutions/articles/13000064762
                  Add-Ons: https://troikatronix.com/add-ons/ & https://troikatronix.com/add-ons/?u=woland
                  Professional Services: https://support.troikatronix.com/support/solutions/articles/13000109444

                  | Isadora Version: all of them | Mac Pro (Late 2013), macOS 10.14.6, 3.5GHz 6-core, 1TB SSD, 64GB RAM, Dual AMD FirePro D700s |

                  gapworks 2 Replies Last reply Reply Quote 1
                  • gapworks
                    gapworks @Woland last edited by

                    @woland

                    sorry but i just don't get  it! 

                    Running MBP2017 / Ventura Osx 13.6.7 / 16 GB 2133 MHz LPDDR3 / Intel HD Graphics 630 1536 MB / Latest Isadora Version / www.gapworks.at / located in Vienna Austria

                    1 Reply Last reply Reply Quote 0
                    • gapworks
                      gapworks @Woland last edited by

                      @woland

                      I still haven't solved it!

                      best

                      Running MBP2017 / Ventura Osx 13.6.7 / 16 GB 2133 MHz LPDDR3 / Intel HD Graphics 630 1536 MB / Latest Isadora Version / www.gapworks.at / located in Vienna Austria

                      Woland 1 Reply Last reply Reply Quote 0
                      • Woland
                        Woland Tech Staff @gapworks last edited by Woland

                        @gapworks 💓

                        /*
                        TT Kaleidoscope - Fragment Shader
                        version v1.1
                        Created for Isadora by Mark Coniglio
                        Updated for Speed Change and Reverse Mode
                        */
                        // ISADORA_PLUGIN_NAME("TT Kaleidoscope")
                        // ISADORA_PLUGIN_DESC("The classic kaleidoscope effect.")
                        // ISADORA_INT_PARAM(divisions, divs, 1, 100, 5, "Number of divisions in the kaleidoscope.");
                        uniform int divisions;
                        // ISADORA_FLOAT_PARAM(src_horz, srcx, -100.0, 100.0, 0.0, "Horizontal offset when sampling the source image.");
                        uniform float src_horz;
                        // ISADORA_FLOAT_PARAM(src_vert, srcy, -100.0, 100.0, 0.0, "Vertical offset when sampling the source image.");
                        uniform float src_vert;
                        // ISADORA_FLOAT_PARAM(src_rotation, srcr, -180.0, 180.0, 0.0, "Rotation when sampling the source image.");
                        uniform float src_rotation;
                        // ISADORA_FLOAT_PARAM(out_horz, outx, -100.0, 100.0, 0.0, "Horizontal offset of the output.");
                        uniform float out_horz;
                        // ISADORA_FLOAT_PARAM(out_vert, outy, -100.0, 100.0, 0.0, "Vertical offset of the output.");
                        uniform float out_vert;
                        // ISADORA_FLOAT_PARAM(out_rotation, rot, 0, +360, 0.0, "Rotation of the output degrees.");
                        uniform float out_rotation;
                        // ISADORA_FLOAT_PARAM(speed, spd, 0.0, 10000.0, 1.0, "Speed multiplier for time progression.");
                        uniform float speed;
                        // ISADORA_INT_PARAM(reverse, rev, 0, 1, 0, "Enable reverse mode.");
                        uniform int reverse;
                        uniform float time;
                        uniform vec2 resolution;
                        uniform sampler2D tex0;
                        const float PI = 3.14159265359;
                        int integer_modulo(float a, float b) {
                            // mod = a - b * floor(a/b)
                            float m = mod(a, b);
                            return int(m + 0.5);
                        }
                        void main() {
                            float adjustedTime = time * speed;
                            if (reverse == 1) {
                                adjustedTime = -adjustedTime;
                            }
                            if (divisions > 1) {
                                // map to range -0.5 to 0.5, accounting for the aspect ratio
                                float aspect = resolution.x / resolution.y;
                                vec2 c;
                                c.x = (gl_TexCoord[0].x - 0.5 + out_horz / 100.0) * aspect; 
                                c.y = (gl_TexCoord[0].y - 0.5 + out_vert / 100.0); 
                        
                            // apply time-based rotation
                            float dynamicRotation = radians(adjustedTime) + radians(out_rotation);
                            
                            // convert from cartesian to polar coordinates 
                            float phi = abs(atan(c.y, c.x) + dynamicRotation); 
                            float r = length(c);
                            
                            float angleFrac = (2.0 * PI) / float(2 * divisions);
                            int count = int(phi / angleFrac);
                            phi = mod(phi, angleFrac);
                            if (integer_modulo(float(count), 2.0) == 1) {
                                phi = angleFrac - phi;
                            }
                            
                            // from polar coordinates to cartesian
                            float x = r * cos(phi + radians(src_rotation));
                            float y = r * sin(phi + radians(src_rotation));
                        
                            // map back to range 0.0 to 1.0, accounting for the aspect ratio
                            vec2 cc = vec2((x + src_horz / 100.0) / aspect, y + src_vert / 100.0) + 0.5;
                            // set the output color
                            gl_FragColor = texture2D(tex0, cc);
                        } else {
                            gl_FragColor = texture2D(tex0, gl_TexCoord[0].xy);
                        }
                        

                        }

                        TroikaTronix Technical Support
                        New Support Ticket: https://support.troikatronix.com/support/tickets/new
                        Support Policy: https://support.troikatronix.com/support/solutions/articles/13000064762
                        Add-Ons: https://troikatronix.com/add-ons/ & https://troikatronix.com/add-ons/?u=woland
                        Professional Services: https://support.troikatronix.com/support/solutions/articles/13000109444

                        | Isadora Version: all of them | Mac Pro (Late 2013), macOS 10.14.6, 3.5GHz 6-core, 1TB SSD, 64GB RAM, Dual AMD FirePro D700s |

                        gapworks 1 Reply Last reply Reply Quote 2
                        • gapworks
                          gapworks @Woland last edited by

                          @woland


                          Thanks a lot. Just what i needed!

                          best

                          Running MBP2017 / Ventura Osx 13.6.7 / 16 GB 2133 MHz LPDDR3 / Intel HD Graphics 630 1536 MB / Latest Isadora Version / www.gapworks.at / located in Vienna Austria

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post