• Isadora
  • Get it
  • Forum
  • Help
  • ADD-ONS
  • Newsletter
  • Impressum
  • Dsgvo
  • Impressum
Forum
    • Categories
    • Recent
    • Popular
    • Tags
    • Register
    • Login

    GLSL Shader Actor : 'parameter setting window'

    How To... ?
    7
    27
    6.4k
    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.
    • bonemapB
      bonemap Izzy Guru
      last edited by

      Thanks @Mark,

      This is good advice. It is important to get a feel for the limitations and performance of the shaders in the mix. The detailed shaders offer more allure as they approach representational simulations. Gaining an understanding of control inputs into those visual worlds is worth investigating and mastering. To understand the point where a shader is unviable for the GPU is a necessary lesson. The Isadora inputs might not be in themselves taxing the GPU, however the parameters supplied by these inputs can have a dramatic effect on the performance of some shaders - And it looks like the shaders I am most drawn to investigating may be the ones prone to limited realtime manipulation. We shall see.
      cheers
      bonemap

      http://bonemap.com | Australia
      Izzy STD/USB 3.2.6 | + Beta 3.x.x
      MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
      Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
      A range of deployable older Macs

      1 Reply Last reply Reply Quote 0
      • bonemapB
        bonemap Izzy Guru
        last edited by

        This shader, for example, wants more than what it can get from my GPU. The fps fluctuate with the amount of detail generated by the Isadora input parameters. 571d3d-bonemap_glsl_test.izz

        http://bonemap.com | Australia
        Izzy STD/USB 3.2.6 | + Beta 3.x.x
        MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
        Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
        A range of deployable older Macs

        1 Reply Last reply Reply Quote 0
        • JJHP3J
          JJHP3
          last edited by

          Thanks for posting this, but "swaying strands" actor is empty, so I can't give it a look.  John

          MBP'21- M1-Max; Sonoma 14.2.1; Isadora: 3.2 (ARM) ---- artwork: terragizmo.net

          1 Reply Last reply Reply Quote 0
          • bonemapB
            bonemap Izzy Guru
            last edited by

            @JJHP3 Thanks for letting me know. If you are interested I will post the .txt file. Perhaps it is not possible to share a patch file with a GSLS shader embedded? Cheers Bonemap

            http://bonemap.com | Australia
            Izzy STD/USB 3.2.6 | + Beta 3.x.x
            MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
            Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
            A range of deployable older Macs

            1 Reply Last reply Reply Quote 0
            • A
              Aolis
              last edited by

              Hmmm, this does seem like a bug. When I try opening the file, I get an error that the Swaying Strands actor can't load.  I see it in the patch - but when I double click the actor it minimizes as though it were a normal actor and not a GLSL one. . . .

              Media Artist & Teacher
              Trashcan Late 2012, Mojave / MacBook Pro 2019 5600M, Catalina

              1 Reply Last reply Reply Quote 0
              • bonemapB
                bonemap Izzy Guru
                last edited by

                Hi @Aolis, @JJHP3,

                I have created a new Isadora file and pasted the GLSL code into a new instance of the GSLS Shader actor. I notice that the generic GLSL actor no longer has its badge - there is no GLSL logo or Creative Commons logo displaying on the actor node.
                I have attached here the new Isadora file and the .txt file for Swaying Strands. 
                Let me know if you have any suggestions for the code to become more efficient or for some frame rate gains.
                cheers
                bonemap

                d6575b-bonemap_glsl_test_2.zip

                http://bonemap.com | Australia
                Izzy STD/USB 3.2.6 | + Beta 3.x.x
                MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
                Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
                A range of deployable older Macs

                1 Reply Last reply Reply Quote 0
                • DusXD
                  DusX Tech Staff
                  last edited by

                  as Mark said, the for loops are tieing things up.

                  You could add published Int inputs to set these dynamically.. (one is hard coded to 256 and another to 😎
                  Changing the 256 to 128 still has a similar effect, while 64 loses the thru/cutout sections.. but is interesting in its own way.
                  I can run the file at my more than 1080p screen resolution for about 30secs before my gtx 870m starts to over heat... then I have FPS dropping drastically. I use 'TechPowerUp GPU-Z' to check the status of GPU. Its for PC, not sure of a Mac equivalent.

                  Troikatronix Technical Support

                  • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
                  • Isadora Add-ons: https://troikatronix.com/add-ons/
                  • My Add-ons: https://troikatronix.com/add-ons/?u=dusx

                  Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

                  1 Reply Last reply Reply Quote 0
                  • bonemapB
                    bonemap Izzy Guru
                    last edited by

                    @DusX,

                    Thanks Ryan,
                    These overhead issues are going to require quite a bit of understanding. I am pretty sure that I don't have the coding ability to resolve them. Might have to look at asking for help from my programmer friends.
                    I get what you are talking about - I am just not there in terms of being able to go straight to a solution.
                    Cheers
                    bonemap

                    http://bonemap.com | Australia
                    Izzy STD/USB 3.2.6 | + Beta 3.x.x
                    MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
                    Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
                    A range of deployable older Macs

                    1 Reply Last reply Reply Quote 0
                    • markM
                      mark
                      last edited by

                      @bonemap,

                      Well, the simple answer is this: if a shader drops your FPS, then it's a 'heavy' program. There may not be a way for non-coders to solve this, as the loops are part of what makes the image look the way it looks.
                      The simplest rule of thumb to say if you see a "for" or an "if" or an "else" then you can rest assured that this shader is suspect in terms of its performance impact.
                      If you want to dig further, look for statements like this: "for (x=0; x<**256**; x++)" The number in bold is the top limit of the loop. This example shows that the loop will repeat 256 times. My guess than anything greater than 8 or 16 at the most is going to cause trouble. (Remember, that those 256 iterations are going to be performed on every pixel of the image. If the image is 1920x1080, that's 530 million calculations!)
                      Best Wishes,
                      Mark

                      Media Artist & Creator of Isadora
                      Macintosh SE-30, 32 Mb RAM, MacOS 7.6, Dual Floppy Drives

                      1 Reply Last reply Reply Quote 0
                      • bonemapB
                        bonemap Izzy Guru
                        last edited by

                        @Mark,

                        Thank you for your time to provide additional advice about the use of the GLSL Shader and confirm the warning signs to look out for. Each investigation can only lead to a better understanding. 
                        Regards
                        bonemap

                        http://bonemap.com | Australia
                        Izzy STD/USB 3.2.6 | + Beta 3.x.x
                        MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
                        Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
                        A range of deployable older Macs

                        1 Reply Last reply Reply Quote 0
                        • markM
                          mark
                          last edited by

                          Dear @DusX and All,

                          I have added another "addendum" to the GLSL Shader Tutorial called "Performance Issues." This is based on the performance problems @bonemap identified in this thread. Hopefully that will allow users to understand why some shaders are giving them low frame rates/poor performance.
                          Best Wishes,
                          Mark

                          Media Artist & Creator of Isadora
                          Macintosh SE-30, 32 Mb RAM, MacOS 7.6, Dual Floppy Drives

                          1 Reply Last reply Reply Quote 0
                          • jhoepffnerJ
                            jhoepffner
                            last edited by

                            Thank you Mark,

                            I am exploring the "generative geometry" possibilities of GLSL, huge expectations to replace Arduino.
                            I have some problems and I will to submit them.
                            Jacques

                            Jacques Hoepffner http://hoepffner.info
                            GigaByte 550b / Ryzen 7 3800X / Ram 64 Go / RTX 3090 24 Go / SSD 2 To / raid0 32 To
                            MBP 13' i5 2.6 Ghz 16 Go / Intel Iris / macOs 10.11.6 / izzy 2.6.1 + 3.0.3b2
                            MBP 15' i7 2.6 Ghz 16 Go / GTX 650M 1Go/ MacOs10.13.3 / Izzy 2.6.1
                            MSI GS65 i7 3.6 Ghz 32 Go / GTX 1070 8 Go / Windows 10 / Izzy 3.0.3b2

                            1 Reply Last reply Reply Quote 0
                            • markM
                              mark
                              last edited by

                              Dear @jhoepffner,

                              What does "generative geometry" mean? Is there an example you can show?
                              Best,
                              Mark

                              Media Artist & Creator of Isadora
                              Macintosh SE-30, 32 Mb RAM, MacOS 7.6, Dual Floppy Drives

                              1 Reply Last reply Reply Quote 0
                              • jhoepffnerJ
                                jhoepffner
                                last edited by

                                I am working on it, it means simple and complicate shapes, fractals etc. Unfortunately the glsl langage is not made for that explicitly, like in Processing (I wrote Arduino instead of Processin) Glsl is more focused on lights and materials.

                                My question could be if it is possible now to use vertex shaders as to program surfaces before to render it in fragment shaders.
                                I hope I an understandable…
                                Best, Jacques

                                Jacques Hoepffner http://hoepffner.info
                                GigaByte 550b / Ryzen 7 3800X / Ram 64 Go / RTX 3090 24 Go / SSD 2 To / raid0 32 To
                                MBP 13' i5 2.6 Ghz 16 Go / Intel Iris / macOs 10.11.6 / izzy 2.6.1 + 3.0.3b2
                                MBP 15' i7 2.6 Ghz 16 Go / GTX 650M 1Go/ MacOs10.13.3 / Izzy 2.6.1
                                MSI GS65 i7 3.6 Ghz 32 Go / GTX 1070 8 Go / Windows 10 / Izzy 3.0.3b2

                                1 Reply Last reply Reply Quote 0
                                • bonemapB
                                  bonemap Izzy Guru
                                  last edited by

                                  Hi,

                                  I have not been able to relieve the GPU overhead in the 'Swaying Strands' GLSL Shader code posted earlier in this thread. But have slightly improved an average frame rate to between 25 - 35 fps (up from 15 - 20 fps) at the same resolution 2400 x 600. With some minor compromise to the visual integrity, adjustment of float numbers associated with the 'for' loop responsible for the GPU strain appear to have lessened the loop overhead allowing the range of live Isadora inputs to be extended somewhat. However, higher screen resolutions remain a hurdle for complex looping shaders.

                                  I have also noticed that the complex GLSL Shader may not play through smoothly even at higher fps. For example, I still get a slightly stuttering play back at 60fps at the 2400 x 600 resolution. This suggests the 'all at once' throughput of the GPU process is not buffered and takes it as it comes - more complex calculation of pixels slow the visuals as the code is passed.

                                  Attached here is the revised GSLS shader code with comments indicating the float modification associated with the 'for' loop instance.

                                  This does not change the conditions of what to look out for as indicated by Mark and DusX in this thread.

                                  The original code is from Ingo Quilez (https://www.shadertoy.com/view/XsjXR1) and nimitz (https://www.shadertoy.com/view/4sfXDs)

                                  2917ef-bonemap_shadertest_4.izz

                                  http://bonemap.com | Australia
                                  Izzy STD/USB 3.2.6 | + Beta 3.x.x
                                  MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
                                  Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
                                  A range of deployable older Macs

                                  1 Reply Last reply Reply Quote 0
                                  • bonemapB
                                    bonemap Izzy Guru
                                    last edited by

                                    Hi,

                                    here is a screen capture of the GLSLshader with Isadora inputs animating the code across three stages with a total resolution 2400 x 600.

                                    e80603-bonemap_test_glslshader.jpg

                                    http://bonemap.com | Australia
                                    Izzy STD/USB 3.2.6 | + Beta 3.x.x
                                    MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.1.2 Sonoma
                                    Mac Studio 2023 M2 Ultra 128GB | OSX 14.1.2 Sonoma
                                    A range of deployable older Macs

                                    1 Reply Last reply Reply Quote 0
                                    • MichelM
                                      Michel Izzy Guru
                                      last edited by

                                      @bonemap

                                      Looks great.
                                      Best Michel

                                      Michel Weber | www.filmprojekt.ch | rMBP (2019) i9, 16gig, AMD 5500M 8 GB, OS X 10.15 | located in Winterthur Switzerland.

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