In Development: Subdivide and Smooth
-
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>
-
create a curved surface with the Smoove tool
-
generate contours either by the dedicated script, or by intersecting with equidistant planes
-
group contour lines and create a surface by using the sandbox tools
-
paint this surface a different color from the original
-
make a copy (change the color) of this new surface and apply your script
-
compare original surface with both new surfaces
whaat thanks for making sketchup better, can't wait for you to release.
-
-
oh dear God, please give this guy more power to made this script available to everyone soon.
-
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!
-
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
-
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
-
It would be great if you could do a script that could make high poly models low poly. It would be awsome.
-
holy moly! this is simply terrrific!
how long did the sub division take coen? -
amazing
Coen, would it also be possible to leave the 'knife -like features' on the claw as they where ( I mean not subdivised (and rasor scharp ) or is the whole model always subdivised ?
erikB -
wow, i cant believe my eyes, this is going to be an awsome script to use!
-
Hi all,
I am looking for one more beta tester at the moment. I need someone with a lot of free time on their hands (anyone??) I am worried that the current testers are too busy to test and post bugs. Is there anyone out there who could commit to spending a LOT of time testing over the next week? First come first serve. Please respond right here.
-
Here!
-
I can help. I already sent you a private message yesterday about this. I'm currently doing a project which could benefit. Plus, I've experience in scripted solutions.
http://www.vuetoolbar.com/VueToolbarCover/default.htm -
@daniel s said:
Here!
OK, you got the job! I expect a two page bug report on my desk tomorrow morning.
Seriously, though, please give as much feedback as you have time for. I will send you a PM later today. Thanks. -
@chippwalters said:
I can help. I already sent you a private message yesterday about this. I'm currently doing a project which could benefit. Plus, I've experience in scripted solutions.
http://www.vuetoolbar.com/VueToolbarCover/default.htmI'm sure a lot of people's projects could benefit. What I need is someone who has time to test and post bugs and feedback. If you are still interested I will send you a PM.
-
Yes. Still interested
-
-
@whaat said:
Hi all,
I am looking for one more beta tester at the moment. I need someone with a lot of free time on their hands (anyone??) I am worried that the current testers are too busy to test and post bugs. Is there anyone out there who could commit to spending a LOT of time testing over the next week? First come first serve. Please respond right here.
I'm in, i have free time.
-
That is amazing to see what Coen has posted. This script is something special!
-
A preview using the latest SubD Beta. This is my first 'playing around' model. Couple of interesting workflow techniques. You can set up SubD so you only work on half of a model, and the proxy components are updated as fast as possible. You can update them with a fast and low SubD setting, then when you're finished, you can update the proxies with a higher SubD setting, as this picture shows.
Also, you can 'crease' edges and vertices, so you have more control over how tight the SubD patching is fitted. A very, very cool plugin which, after taking a bit of time to learn, will be most valuable in everyone's toolset!
The rendering is Podium overlayed with a line render from SU.
-
All together now, SWEET!
Advertisement