Jump to content

Curves and other frustrating things about Curves


hopbin9

Recommended Posts

Hi,

I've got some basic *noob* questions about working with curves in Houdini, and after searching the manual I've been unable to figure this out.

1) After creating a Curve SOP node interactively in the viewport. How do I add more curve points? I click on the curve and I'm able to move points and delete them, but I can't figure out how to add new ones?

2) How do I define the type of corner for a curve point. Say I want to make the curve in the shape of the letter P, how to I mix curve points that are curved and ones that are hard corners?

3) Is it possible to have handles to control the curve point when working with Bezier?

Thanks :)

Link to comment
Share on other sites

The best way to figure out what a tool wants is to check the status bar at the bottom of your Houdini. It normally tells you what it's waiting for.

So to answer your questions:

1) Shift-click where you want your new point, or outside the curve to add a new end point.

2) Assuming you mean NURBS (probably Bezier too), you'll need to add multiple points where you want a hard corner. As far as I know there is no way to control the weight of a point from the viewport.

3) Control the weight of the curve, or the position?

I never use bezier curves actually, so I played with one to see what it does. It looks like every 4th point is a hard point? Very odd...

As for NURBS, there is a sneaky way to mess with the weights. Once you draw your curve you can manually override the weights in the spreadsheet. The weights on NURBS points default to 1, setting them to 1000 seems to give a really hard corner (I didn't play with this much, so that setting could be way too high ;)).

You'll also notice that your SOP gets softlocked. This was a feature way back and I thought it had been removed...

Have fun.

M

edit: looks like beziers also have a P[w], so you can affect them the same way.

Link to comment
Share on other sites

...

I never use bezier curves actually, so I played with one to see what it does. It looks like every 4th point is a hard point? Very odd...

...

that is how bezier work, at least for order of 4

but there should be more intuitive handles

each 'hard point' is control point which can be moved, but previous and next point should behave like they were parented to that control point so they should move with it

basically vectors from control point to its neighbors are tangents and usually by default they lie on the same line with control point so when you move one tangent of some control point second tangent should compensate to stay aligned with the first one and control point

that way you'll not get corner at the control point

but if you need it there is always possibility to break tangents for any control point to move them independently to each other(but they are still translated with control point)

bezier curves are for example default curves in Channel Editor so you can see what kind of handles hopbin9 is expected

there is no surprise that not many people is using bezier curves in Houdini at least interactively because without proper handles they are unintuitive and hard to control

2) to add to marc's answer you can set weight procedurally without soft locking geometry by point SOP just specify group of points in the Group parameter and change Keep Weight to New Weight and set it to 1000 for example

or use Paint SOP to paint color 0-1 then add that to weight (like $WEIGHT+$CR*1000)

  • Like 1
Link to comment
Share on other sites

1) After creating a Curve SOP node interactively in the viewport. How do I add more curve points? I click on the curve and I'm able to move points and delete them, but I can't figure out how to add new ones?

2) How do I define the type of corner for a curve point. Say I want to make the curve in the shape of the letter P, how to I mix curve points that are curved and ones that are hard corners?

3) Is it possible to have handles to control the curve point when working with Bezier?

Another way to do it is to use the Path tool/Object at the /obj level. You can find it in the Tab menu>Utility>Path. It creates a PathCV object at the object level for each breakpoint and while in the Path state you can add points with Ctrl-Left on the path. You can also cycle through move / scale / rotate for each CV with the 'y' key as usual. The only thing you can't do is to break the tangents.

Another nice thing is that the PathCV object has a twist attribute which gets written to the path and is useful for various stuff.

http://www.sidefx.com/docs/houdini11.0/nodes/obj/path

Dragos

Edited by digitallysane
Link to comment
Share on other sites

one thing I have not yet found a good way to do is, whe You have a curve, some SOPS on it and after that You want quickly add some points to refine, no resampleing , just add a point here and there. there might be a way that I have not see.

Martin

Link to comment
Share on other sites

one thing I have not yet found a good way to do is, whe You have a curve, some SOPS on it and after that You want quickly add some points to refine, no resampleing , just add a point here and there. there might be a way that I have not see.

Martin

you can use Refine SOP to do that

Just to clarify, I know what bezier curves are ;). It's the ones in the curve SOP that don't behave as I expect them to.

M

sorry Marc for explaining the obvious :) beziers in curve sop really behaves oddly when lacking proper handles

Link to comment
Share on other sites

Your best hope as far as I know is fiddling with a carve SOP for NURBS or an edgedivide SOP for poly curves. Not the easiest, but it's all we have :).

@Tomas: Not a problem, those explanations are great for having on the forum anyway. At some point someone will be researching bezier curves on here.

Link to comment
Share on other sites

.. just an idea on "how to add points to a Curve SOP" .

the attached otl simply manipulates the "coords" string parm on the curve ;

> reads it to a list

> finds both neighbors of the desired index ( which determines where to insert the new_point )

> calcs their midpoint ( an 'excuse' where to put the new_point )

> inserts new_point's coords into the appropriate position in list

> updates the curve's "coords" parm

usage ;

> drag the curve node to the otl's "curve name" parm

> select the index and click "add point" button .

should work . at least it did in my last 15 minutes i tested it ...

i'm a python noobie , so feel free to correct or add functions to it . =)

..

post-5487-130658801487_thumb.png

helpThatCurve_001_py.otl

Link to comment
Share on other sites

As for beziers. they aren't well suited for VFX. Modeling? OK (esp if you come from XSI). Illustrator? Sure. Font creation? Absolutely use beziers where things are static and you want a lot of control.

Use NURBs curves and work with the edit points (knots, breakpoints, grevel points, whatever) to control the touch points on the curves directly. ;)

This way you can snap the NURBs curves to geometry at every knot unlike beziers where you can do this every nth point depending on the basis of the Bezier. Then there is the overhead of animated tangents on the points which create whacky whacky results with Beziers.

When creating NURBs curves, try the Breakpoints method to draw the curve. The curve will draw through the points you select. I use this mode for NURBs almost exclusively.

When editing the edit knot points, the selection tool doesn't have a hotkey for selecting them to edit them. Just press-hold on the Geometry Select Mode button in the upper left of the viewport and choose Edit Points. You can select them and move them now.

To display the edit knot points, the button option isn't exposed in the viewport right hand display options toolbar. You have to open the Display Options dialog and turn on the Breakpoints option to see the knots.

  • Like 2
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...