In Development: Subdivide and Smooth
-
@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.
-
Is this any good whaat? might be a bit simple for your purposes, but it was good fun to make
-
@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 iterationsIt 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
-
@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.
-
@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.
-
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
Advertisement