Jump to content

roots


puma.snyder

Recommended Posts

I have a rocky landscape, and I want to have multiple "roots" (basicly just some curved tubes) layering on the surface.

So far I just ray the curves on the surface and use sweep sop to build the roots. This works fine for the first layer,

but how can I set this up that subsequent "roots" do not cross the ones which are already there. Instead they should "wrap around" those.

Any ideas how to get this working?

Thanks!

Achim

post-19-1082550634.jpg

Link to comment
Share on other sites

Thank you FrenchOP. I tried that last time but didnt convert the curve and so it didnt work as expected.

Anyway now it works, and it directly leads to the next problem.

the transition between the part of the curve on the ground and the part on the tubes is very abrupt (see the blue circle).

I need a way to smooth this transition area. This gets even worse the more layers there are,

imagine 4 or 5 of those tubes over each other. When I ray another curve on it (something like the red line in the picture)

parts of it will be rayed all the way to the ground and the next point will eventually be rayed on the higher tubes again.

Those curves should have a certain stiffness, so that they dont reach the bottom.

maybe the spring sop is the solution , got to try it (Thanks anakin78z)

Thanks again

post-19-1082566993.jpg

Link to comment
Share on other sites

Why not use a SmoothSOP (or create a filter in CHOP): in fact the problem is it will smooth all the regions of the root, which is undesirable.

So my idea is the following: Create all your stuff with a flat landscape ( a grid), so that the smoothing will only affect the non-flat zones.

Once all your roots are created, Creep the result onto your non-flat Landscape.

Hope it helps or at least gives your ideas.

Link to comment
Share on other sites

Creep would be a pretty good way to approach it. I guess you can make a point to creep on the surface, then trace the path of the creep and use that to form a line. Now, if you want to get the creep on top of other existing creeped-geometry, you may have to write some looping script (Hscript/perl/ etc) to resuse and modify existing geometry data. It could get complicated and nasty pretty fast, but, it should be a fun little project.

Oh, don't take my word for it either. It's still a concept in my head. :)

Cheers,

A

Edit: oops. Posted too fast... Please disregard my posting. :P

Link to comment
Share on other sites

Hey Achim,

Yet another idea would be to think of each layer as a different pass, so that you'd start with a flat grid and ray your first set of roots. Then you ray another flat grid on top of the result, and use that as the grid that you ray layer 2 onto... and so on -- every step (except the first) involves raying both a plane and the roots.

<edit>

What we're doing here is also filtering; but instead of filtering the whole thing, we filter on each step. The base of the filter is the average distance between points in each base plane, but the cumulative effect is not linear, but exponential.

</edit>

In this scenario then, the sharpness of the wrap among roots is determined by the sampling frequency of (number of points in) the base plane for each layer. And the whole thing could be driven using a copy-stamp setup.

Just speculating here... I'm probably not seeing a whole bunch of potential problems...

Cheers!

Link to comment
Share on other sites

Hi FrenchOP, I tried it on a flat grid, but the problem is again that the smooth sop will also smooth that part of the curve which "creeps" over the tube, and so the new tube will intersect the one under it.

Hey Mario, thanks for your suggestion as well. Unfortunatly this wont work as well, cause if I ray a grid with less resolution as the new base, it will make the transition area smooth, but it will not follow the underlying tube geometry detailed enough, so the new tube will intersect the old one as well. If I use a high res gid, the transition is very abrupt again.

I also tried the spring solution, but I have problems with it. The result is very close to the ray sop approach, but this may be because of my lack of experience with the spring sop. If aybody has a quick example on how to use the spring sop for such a scenario it would be a great help.

Link to comment
Share on other sites

The tubes themselves can be built several ways. You're using the sweep SOP which can take a backbone. You can build a backbone that properly oreintates the cross-sections around sharp transitions. Very tricky.

You can also use the polywire SOP. It may handle the sharp corners better or worse. Polywire can handle branching very nicely with proper management of uv's. Handy for doing roots and I would go this route instead of sweep here. Try the branching. Just fork off two curves and fuse the points. Polywire also takes attributes just like sweep.

The backbone itself is varying in density from the ground to the root. As well, it looks like there are way too many points in the flats along the ground. You can try a Refine SOP and use the unrefine option, make sure that First U and Second U are set to 0 and 1 repsectively then play with the Tolerance U to control the number of points. This tool looks at the slope and acceleration of the curve and determines when and where to cull points. You will find that the number of points around the joint will go away and your sweep or polywire will look much better in most cases.

You might want to follow up with a Polyspline or a Resample SOP get back some of the divisions or to evenly space out the divisions.

Link to comment
Share on other sites

Unfortunatly this wont work as well, cause if I ray a grid with less resolution as the new base, it will make the transition area smooth, but it will not follow the underlying tube geometry detailed enough, so the new tube will intersect the old one as well. If I use a high res gid, the transition is very abrupt again.

Right. I see.

The base plane for each layer should be a parametric grid (e.g: NURB) to emulate the averaging you need around the points -- so you're projecting a hull as a base. Once projected, you can convert it back to polys (if projecting to a NURB surface gives you trouble, that is... and I suspect it might), and project the root splines onto the poly version.

Another thing that came to mind is that I guess you wouldn't be able to set this up with a straight copy-paste method as I originally suggested -- the input to each iteration is the output of the previous one.... oops, can you say "feedback" ? :)

So I guess you could only do it as a fixed chain of projections.... ugh!

Cheers!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...