sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    In Development: Subdivide and Smooth

    Scheduled Pinned Locked Moved Developers' Forum
    262 Posts 65 Posters 40.8k Views 65 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.
    • J Offline
      justry
      last edited by

      Yeah I know a second iteration wasn't necessary, I just wanted to test the performance of the script on a high-poly model.

      The first one took you 15 seconds though??! My machine's gotta be real slow 😞 . Gotta get me a new one!

      Thanks for the quick reply Rick, and your script's great too man. All of them actually 👍 .

      And waiting for that amazing script of yours whaat!

      1 Reply Last reply Reply Quote 0
      • R Offline
        RickW
        last edited by

        I think our machines are comparable processor speed, so maybe it's a memory issue (running 4GB RAM here). Regardless, my script is slow compared to Whaat's, since I didn't really get past the proof-of-concept stage into optimizing.

        RickW
        [www.smustard.com](http://www.smustard.com)

        1 Reply Last reply Reply Quote 0
        • W Offline
          Whaat
          last edited by

          Subdivide and Smooth version 1.0 Final Features List

          • Low-poly proxy subdivision modeling
          • Automatic updating of subdivision surfaces while editing a proxy (optional)
          • Material inheritance of proxy model to subdivision surface (optional)
          • Creasing tool - allows toggling of fully creased edges or vertices
          • Up to 4 subdivision and smooth iterations
          • Unlimited proxy subdivision models can exist in the same file
          • Subdivision and smoothing of a single isolated face
          • Robust subdivision algorithm that can handle almost any geometry
          • Subdivision without smoothing (linear subdivision) - also triangulates all meshes and maintains material assignment
          • Mesh smoothing (vertex averaging) without subdivision - maintains material assignment
          • Extrude tool - useful for modeling clean geometry that subdivides well
          • Knife subdivide tool (aka 'Zorro')

          Testing begins this week! (sorry, invitation only). I will keep you all posted on the release date!

          Whaat

          SketchUp Plugins for Professionals

          1 Reply Last reply Reply Quote 0
          • R Offline
            remus
            last edited by

            Mmmmmm, exciting stuff, i look forward to it whaat, thanks again for all the hard work 👍

            http://remusrendering.wordpress.com/

            1 Reply Last reply Reply Quote 0
            • K Offline
              kwistenbiebel
              last edited by

              I am not sure what all the features exactly mean, but it does sound really cool 😉.

              1 Reply Last reply Reply Quote 0
              • A Offline
                a4chitect
                last edited by

                whaat you rock! I can't wait for this release! you are one of those for whome the human cloning was meant in the first place 😄 its interesting that you mention mesh smoothing (without subdivision), does it mean we will be able to smooth contour generated surfaces so they will be more natural in shape? good luck with testing

                1 Reply Last reply Reply Quote 0
                • F Offline
                  Fletch
                  last edited by

                  😲 can't wait to see it, Whaat...
                  (on the 'invite' list, on the 'invite' list, on the 'invite' list)
                  http://www.kerkythea.net/phpBB2/images/smiles/eusa_pray.gif

                  Fletch
                  Twilight Render Cross-platform Plugin for SketchUp on PC or Mac

                  1 Reply Last reply Reply Quote 0
                  • soloS Offline
                    solo
                    last edited by

                    By the look and feel of it I think the name should be 'Organix' as it does give one the abllity to model organically.

                    http://www.solos-art.com

                    If you see a toilet in your dreams do not use it.

                    1 Reply Last reply Reply Quote 0
                    • W Offline
                      Whaat
                      last edited by

                      @a4chitect said:

                      does it mean we will be able to smooth contour generated surfaces so they will be more natural in shape? good luck with testing

                      Can someone post a complicated contour generated surface? I would like to test this. Thanks.

                      SketchUp Plugins for Professionals

                      1 Reply Last reply Reply Quote 0
                      • R Offline
                        remus
                        last edited by

                        Is this any good whaat? might be a bit simple for your purposes, but it was good fun to make 😛


                        whaat contours.skp

                        http://remusrendering.wordpress.com/

                        1 Reply Last reply Reply Quote 0
                        • W Offline
                          Whaat
                          last edited by

                          @remus said:

                          Is this any good whaat? might be a bit simple for your purposes, but it was good fun to make 😛

                          Thanks remus,

                          Here are the results:

                          First image is the original surface generated from contours
                          Second image is the same surface after performing vertex averaging (same number of polys)
                          Third image is the surface after performing two subdivision and smooth iterations

                          It seems like vertex averaging will be very useful to generate more realistic landscape surfaces without increasing poly-count. The only problem is that the the resulting surface will no longer coincide with the contours, so real-world accuracy is lost. There is no easy way to change this so don't ask 😄


                          original surface


                          Mesh smoothing (vertex averaging without subdivision)


                          after two subdivision and smooth iterations

                          SketchUp Plugins for Professionals

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

                            @whaat said:

                            There is no easy way to change this so don't ask 😄

                            Just tell them it's an erosion feature thrown in for no charge.

                            1 Reply Last reply Reply Quote 0
                            • Mike LuceyM Offline
                              Mike Lucey
                              last edited by

                              @unknownuser said:

                              @whaat said:

                              There is no easy way to change this so don't ask 😄

                              Just tell them it's an erosion feature thrown in for no charge.

                              😆

                              Support us so we can support you! Upgrade to Premium Membership!

                              1 Reply Last reply Reply Quote 0
                              • A Offline
                                a4chitect
                                last edited by

                                brilliant whaat - exactly as expected - the surface is much more natural, as for the accuracy - I guess the the vertex-averaged surface could meet the controur lines by simply moving it along the Z axis a bit, and even if they can't touch everywhere - the result is better for its smoothness, you can't take the contours for benchmarking since their accuracy is fairly limited too 😉

                                maybe performing a test could prove my point>

                                1. create a curved surface with the Smoove tool

                                2. generate contours either by the dedicated script, or by intersecting with equidistant planes

                                3. group contour lines and create a surface by using the sandbox tools

                                4. paint this surface a different color from the original

                                5. make a copy (change the color) of this new surface and apply your script

                                6. compare original surface with both new surfaces

                                whaat thanks for making sketchup better, can't wait for you to release.

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

                                  oh dear God, please give this guy more power to made this script available to everyone soon. ☀

                                  1 Reply Last reply Reply Quote 0
                                  • K Offline
                                    kwistenbiebel
                                    last edited by

                                    Yummy !
                                    Terrific results as far as I see.

                                    This together with a 'wrap texture around object' feature could possibly make other 3d party organic model software trash can material.

                                    Good stuff Whaat!

                                    1 Reply Last reply Reply Quote 0
                                    • W Offline
                                      wikii
                                      last edited by

                                      I wrote script below to simulate whaat's.It works,but not perfect

                                      
                                      class Smooth_contours
                                         attr_reader ;author,;date,;ver
                                         def initialize
                                            @author="Wikii"
                                            @date="20080402"
                                            @ver="0.01"
                                            @mm=Sketchup.active_model
                                            @fs=@mm.selection.to_a.delete_if{|x| x.class!=Sketchup;;Face}
                                            do_Smooth_contours if @fs.length>0
                                         end
                                         def center_point point3ds
                                            re=Geom;;Point3d.new(0,0,0)
                                            num=0
                                            0.upto( point3ds.length-1){|x|
                                               if point3ds[x].class==Geom;;Point3d
                                                  re.x+=point3ds[x].x
                                                  re.y+=point3ds[x].y
                                                  re.z+=point3ds[x].z
                                                  num+=1.0
                                               else #weighted
                                                  re.x+=point3ds[x][0].x*point3ds[x][1]
                                                  re.y+=point3ds[x][0].y*point3ds[x][1]
                                                  re.z+=point3ds[x][0].z*point3ds[x][1]
                                                  num+=point3ds[x][1]
                                               end
                                            }
                                            re.x/=num
                                            re.y/=num
                                            re.z/=num
                                            re
                                         end
                                         def open_vertex? v
                                            v.edges.each{|x|
                                               return true if x.faces.to_a.delete_if{|y| !@fs.include?(y)}.length<2
                                            }
                                            return nil
                                         end
                                         def face_center fc
                                            Geom;;Point3d.new center_point(fc.vertices.to_a.collect{|xx| xx.position})
                                         end
                                         def do_Smooth_contours
                                            group_entities=@mm.active_entities.add_group.entities
                                            vertices=[]
                                            vertices_info={}
                                            @mm.start_operation "123"
                                            n=0
                                            @fs.each{|x|
                                               n+=1.0
                                               Sketchup;;set_status_text "Finished #{(n/@fs.length*1000).to_i/10.0}%"
                                               cen=face_center(x)
                                               x.vertices.each{|y|
                                                  if !vertices.include?(y) and !open_vertex?(y)
                                                     vertices<<y
                                                     #~ tmp0=y.position
                                                     #~ tmp=center_point(y.faces.to_a.collect{|z| [face_center(z),z.area]})
                                                     tmp=center_point(y.faces.to_a.collect{|z| face_center(z)})
                                                     #~ tmp0.z=(tmp0.z+tmp.z)/2.0
                                                     #~ tmp0.z=(tmp0.z+tmp.z)/2.0
                                                     #~ vertices_info[y]=center_point([tmp,tmp0]           )
                                                     vertices_info[y]=tmp
                                                  end
                                               }
                                            }
                                            @ee=Sketchup.active_model.active_entities
                                            puts @ee
                                            vertices.each{|x|
                                               t=Geom;;Transformation.new(vertices_info[x]-x.position)
                                               @ee.transform_entities(t, x)
                                            }
                                            @mm.commit_operation
                                         end
                                      end
                                      Smooth_contours.new
                                      
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • A Offline
                                        a4chitect
                                        last edited by

                                        thanks wikii, nice script you've put together so quickly! here is a resulting surface for illustration. and your script with a plugins menu entry added to just place in the plugins folder


                                        http://img255.imageshack.us/img255/8932/smoothscripteo5.th.jpg


                                        wikii's smooth surface script


                                        illustration comparing surface accuracy after smooth

                                        1 Reply Last reply Reply Quote 0
                                        • RayOchoaR Offline
                                          RayOchoa
                                          last edited by

                                          It would be great if you could do a script that could make high poly models low poly. It would be awsome.

                                          CaR DeSiGnS bY mE
                                          http://ray-ochoa.com

                                          1 Reply Last reply Reply Quote 0
                                          • jenujacobJ Offline
                                            jenujacob
                                            last edited by

                                            holy moly! this is simply terrrific!
                                            how long did the sub division take coen?

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

                                            Advertisement