sketchucation logo sketchucation
    • Login
    โ„น๏ธ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] ShadowProjector

    Scheduled Pinned Locked Moved Plugins
    127 Posts 35 Posters 80.5k Views 35 Watching
    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.
    • TIGT Offline
      TIG Moderator
      last edited by

      Hiding the glass, or putting it onto an 'off' layer work too...

      TIG

      1 Reply Last reply Reply Quote 0
      • simon le bonS Offline
        simon le bon
        last edited by

        Dear TIG

        @unknownuser said:

        I can get it to work with reduced complexity [removing the 'glass']...


        Hiding the glass, or putting it onto an 'off' layer work too...

        As I can conclude , ShadowProjector not only take in account the geometry casted by the shadowed selected face, but also the entire geometry of the model.๐Ÿ˜’
        ๐Ÿ˜•

        @unknownuser said:

        I'm going to test the ShadowProjector with incremental complexity models...

        Alas ShadowProjector is stopped by the first model ๐Ÿ˜•

        http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/ShadowProjector_TIG_006.jpg

        http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/ShadowProjector_TIG_007.jpg

        TIG_shadowProjector_incrementalComplexity.skp

        Simon.

        PS1: I am not happy to be the one who show the tool limitations ๐Ÿ˜ณ

        PS: [Plugin] Teapot (1.0.0) โ€” 01 December 2009

        1 Reply Last reply Reply Quote 0
        • TIGT Offline
          TIG Moderator
          last edited by

          You are right.
          It would be better/quicker if it found only the objects potentially casting shadows on the face...
          BUT the algorithm to do that robustly is beyond me [at the moment].
          So at the moment it checks everything that's active for shadow casting even when it doesn't even cast a shadow on the face.
          So I suggest that keep the 'active entities' simple [using temporary grouping?] and do small sets of shadows...

          TIG

          1 Reply Last reply Reply Quote 0
          • TIGT Offline
            TIG Moderator
            last edited by

            Here's v1.2 http://forums.sketchucation.com/viewtopic.php?p=371243#p371243
            Its speed and error trapping are improved.
            It now limits its purview to potential shadow-casting objects and is therefore quicker... ๐Ÿ˜ฒ

            TIG

            1 Reply Last reply Reply Quote 0
            • simon le bonS Offline
              simon le bon
              last edited by

              @unknownuser said:

              Because faces using a translucent material don't show normal shadows you can now use this tool to add a visible translucent 'gray' shadow-group face [with no edges] onto selected window-glass etc,

              http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/ShadowProjector_TIG_009.jpg

              http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/ShadowProjector_TIG_010.jpg

              As it is, it's already a great tool dear TIG

              Thank you so much to make SketchUp each day growing as a wonderful application

              ++simon

              1 Reply Last reply Reply Quote 0
              • dereiD Offline
                derei
                last edited by

                I can't use the plugin ๐Ÿ˜ž It crashes my model all the time. I made a magnifier glass and a ground plane (face) . I selected the face, that was oriented with front upwards (the shadow projected on front face), then ran the plugin. ... First time it made a grouped face over my selected one. Now it just crashes every time.
                Model attached.


                magnifier.skp

                DESIGNER AND ARTIST [DEREI.UK](http://derei.uk/l)

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  It Bugsplats for me too. ๐Ÿ˜• ๐Ÿ˜ข

                  It's a relatively small object and makes many tiny facets in the shadow that it needs to process.
                  Some complex shapes just have too much geometry.
                  I erased the unneeded coplanar edges which up the face count considerably!
                  Also made sure the forms were solids - tiny holes leak shadows - erased unwanted internal partitions and flaps...
                  The small detailing on the handle also makes some tiny facets when projected.
                  Lifting the handle up 1mm so it didn't touch the face [a single point of contact or tiny common facet seems to be awkward].
                  Making it 1000 bigger using Scale, simplifying the handle and putting the lens on an 'off' layer [you don't want it's shadow anyway ?] - I did get it to work eventually... BUT it took ages !

                  If I copy/paste your geometry into a new SKP I get an error fix now ? message about zero length edges - BUT it doesn't 'fix' within the SKP itself - weird...

                  This simplified version processes readily without problems.Capture.PNG

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • sbpronhS Offline
                    sbpronh
                    last edited by

                    Using this technic and some more ๐Ÿ˜„ creating anamorph art would be great!!!! url:
                    http://jrengozzi.wordpress.com/page/2/

                    Regards and thanks!
                    Harry

                    1 Reply Last reply Reply Quote 0
                    • JuantxoJ Offline
                      Juantxo
                      last edited by

                      If someone is interested there is a similar shadow projector in skelion plugin.
                      You can project shadows at specific time, but over a range of time too, that's the main difference of the plugin.
                      I tried with the magnifier.skp test and it works.(Time calculation about a minut)

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        morph
                        last edited by

                        to TIG

                        I try to find the way to reduce the time of ShadowProjector plugin culation process after I found it take a long time when the number of calculated face up to 50 faces.

                        Now, I study in master degree and try to create plugin to retrieve shadow area from all day solar vector on glass face of building. When I try to put ShadowProjector algorithm to 10 loops solar vector, the time usage graph of 10 loops are not linear. It is parabola although the time usage graph in loop which use the .raytest function is linear.

                        Please suggestion.

                        1 Reply Last reply Reply Quote 0
                        • TIGT Offline
                          TIG Moderator
                          last edited by

                          Morph

                          The time it takes Sketchup to add objects to a context is not linear.
                          The more objects the slower it is, but as you have noticed it is almost 'exponential' so x2 objects takes x4 the time etc.
                          With relatively few objects this is not so noticeable - but the more objects the worse it gets.
                          Also the number of objects already in the context slows things up considerably... so perhaps compartmentalizing the results inside their own entities context - e.g. a group - might speed things up...

                          TIG

                          1 Reply Last reply Reply Quote 0
                          • M Offline
                            morph
                            last edited by

                            to TIG

                            Next idea I think I will try to use EntitiesObserver and EntityObserver to check face after first run calculation process (which take a long time) if face is not modified it will cut off from next calculation.

                            But after I read Google Developer Sketchup (https://developers.google.com/sketchup/docs/ourdoc/entitiesobserver) it warn me that "WARNING: The methods of this observer fire in such a way that making changes to the model while inside of them is dangerous. If you experience sudden crashes, it could be because of this observer. A potential workaround is to use a ToolsObserver to watch what the user is doing instead."

                            Please recommend me for my idea.

                            1 Reply Last reply Reply Quote 0
                            • M Offline
                              Mra
                              last edited by

                              I can't seem to get this to work.

                              It works on one object on my scene, but crashes SketchUp if I attempt it on other objects (exploded or not, normals facing the right way).

                              1 Reply Last reply Reply Quote 0
                              • TIGT Offline
                                TIG Moderator
                                last edited by

                                @unknownuser said:

                                I can't seem to get this to work.
                                It works on one object on my scene, but crashes SketchUp if I attempt it on other objects (exploded or not, normals facing the right way).
                                How does it 'crash' ?
                                If you mean it becomes 'unresponsive' [aka a white-out], that doesn't mean it's crashed - it's just taking a long time to do all of the calculations needed - the complexity increases exponentially as everything has to be checked against everything else... ๐Ÿ˜ฎ

                                You do need to keep things as simplified as you can to ensure it completes within a reasonable time - e.g. use layers etc to hide unwanted objects, ensure the objects are not too complex - and remember that it's pointless casting shadows from [or onto] door-handles, leaves etc - it's to take shadows from block models onto block models etc - also many objects won't cast shadows if they are already within the 'umbra' of other objects, so exclude those from the calculations too...

                                If it's actually 'crashing' - as in a Bugsplat! - then what error messages do you get, if any ๐Ÿ˜•

                                TIG

                                1 Reply Last reply Reply Quote 0
                                • T Offline
                                  the.pjt
                                  last edited by

                                  I wish this features would be done by SU core ... not ruby .. ๐Ÿ˜ž

                                  sorry for main developers .. if they had made a C++ API and compiled extensions .. or a open source program these tasks could be compute much faster ... ๐Ÿ˜ž

                                  but .. thanks a lot dear TIG , ... this is incredible to simulate shadow system in ruby ... thanks for everything , I don't know what is your name and who you are .. man or woman ? , but thanks dear unknown TIG ... ๐Ÿ˜„

                                  1 Reply Last reply Reply Quote 0
                                  • T Offline
                                    tetsuyahishida
                                    last edited by

                                    TIG๏ผ

                                    This plugin is wonderful. I'm now planning to make a plugin to export an hourly data of the shadow ratio.
                                    And now checking the code of yours.
                                    Since sketchup API doesn't have enough kind of shadow API,
                                    it would very helpful if you could explain the algorithm to get the shadow.

                                    Anyway thanks for your masterpiece.

                                    1 Reply Last reply Reply Quote 0
                                    • TIGT Offline
                                      TIG Moderator
                                      last edited by

                                      @tetsuyahishida said:

                                      TIG๏ผ

                                      This plugin is wonderful. I'm now planning to make a plugin to export an hourly data of the shadow ratio.
                                      And now checking the code of yours.
                                      Since sketchup API doesn't have enough kind of shadow API,
                                      it would very helpful if you could explain the algorithm to get the shadow.

                                      Anyway thanks for your masterpiece.

                                      Read the .rb file's code to see how it works...
                                      The sun has a 'direction' [to get the direction of the rays of sunlight we reverse that vector].
                                      The selected faces are processed in turn - 'selected face'...
                                      It finds the edges of all faces in the model or groups/instances that might shine onto that 'selected face'.
                                      It extrudes these edges into a grouped 'tube' with a very long set of faces, which it then intersects with the 'selected face' and adds faces temporarily.
                                      The tube is erased.
                                      It then has a set of edges representing the outer limits of the 'selected face's' shadows; internal 'coplanar' edges are erased so it's as simple as possible.
                                      Each 'shadow' group is formated as the options set, text added etc...
                                      Obviously it's much more complicated than that [e.g. how to spot if there's a 'hole' in a face], but the principle is as stated...

                                      TIG

                                      1 Reply Last reply Reply Quote 0
                                      • T Offline
                                        tetsuyahishida
                                        last edited by

                                        Wow now I got it.I guess that's the best way.

                                        Thanks so much.

                                        @tig said:

                                        @tetsuyahishida said:

                                        TIG๏ผ

                                        Read the .rb file's code to see how it works...
                                        The sun has a 'direction' [to get the direction of the rays of sunlight we reverse that vector].
                                        The selected faces are processed in turn - 'selected face'...
                                        It finds the edges of all faces in the model or groups/instances that might shine onto that 'selected face'.
                                        It extrudes these edges into a grouped 'tube' with a very long set of faces, which it then intersects with the 'selected face' and adds faces temporarily.
                                        The tube is erased.
                                        It then has a set of edges representing the outer limits of the 'selected face's' shadows; internal 'coplanar' edges are erased so it's as simple as possible.
                                        Each 'shadow' group is formated as the options set, text added etc...
                                        Obviously it's much more complicated than that [e.g. how to spot if there's a 'hole' in a face], but the principle is as stated...

                                        1 Reply Last reply Reply Quote 0
                                        • G Offline
                                          Gonvaz
                                          last edited by

                                          I'm afraid I can't make it work. I select a face, then I click tools>ShadowProjector, select lines, or faces, etc. and nothing happens. I haven't been able to get any projection of any shadow.

                                          1 Reply Last reply Reply Quote 0
                                          • TIGT Offline
                                            TIG Moderator
                                            last edited by

                                            @gonvaz said:

                                            I'm afraid I can't make it work. I select a face, then I click tools>ShadowProjector, select lines, or faces, etc. and nothing happens. I haven't been able to get any projection of any shadow.
                                            Any error messages if done with the Ruby Console open ? Can you post a simple example SKP etc...

                                            TIG

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 1 / 7
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement