Carve SOP Power User?

   14495   13   4
User Avatar
Member
245 posts
Joined: Sept. 2008
Offline
Is there an expression one can use in the Carve Sop to enter selected points from a point group (group sop) and enter their UV coordinates into the domainu and domainv sections of the channels of the Carve Sop?

I know this type of thing can easily be done manually in Maya by selecting the breakpoints you want to cut at and then cutting the curves automatically in one step.

How is this achieved in Houdini?

P.S. Not sure if I asked this question before.
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Not sure about any expression but have you tried using vopsop to write out new attributes which you should be able to feed into the carve sop easily?
User Avatar
Member
279 posts
Joined: Dec. 2009
Offline
I'm not front of houdini, but the expression point() would do this for one point in first U and a another point in Second U.
The points must have an UV attribute or be a nurbs.

Somethis like this:
point("path_to_geo_node", point_number, “uv”, 0)

if you want the input node:
point(opinputpath(“.”, 0), point_number, “uv”, 0)
User Avatar
Member
245 posts
Joined: Sept. 2008
Offline
Hi. I've tried using the point expression as well as adding a uv texture attribute with the Point SOP and using the points expression where you can feed in custom attributes. However both attempts resulted in 0. When I fed it “Pw” as the source instead of P (which usually returns XYZ values) I got the carve to produce a 1 instead of a 0 but I really don't know what the value of the Pw returned. I tried to copy this into a transform SOP but the interface failed and I couldn't see the value of my expression. Some display error with the Transform SOP. (I don't think point expression allows for other attributes besides Cd, N, P, and Pw)

As far as VOP Sop is concerned I couldn't find how to get a uv coordinate from the 2 Vex operators inside which were “global1” and output1 . I tried to call up a ptexture1 vex operator which has U coordinate and V coordinate inside the input but only puts out a texture color attribute. The output1 node does not have a place to input UVW coordinates and I can't remember how to add input attributes at the moment. I'm not that familiar with Vex.

Thank you both for replying. Any additional ideas?
User Avatar
Member
279 posts
Joined: Dec. 2009
Offline
The point() expression works BUT there is a problem. Carve SOP doesn't cut at the position expected from uv point.

With expression or manual entry.

You can check the file attached.

Attachments:
bug_carve.hip (74.8 KB)

User Avatar
Member
279 posts
Joined: Dec. 2009
Offline
Submitted as bug.

SESI support is looking for this. Support Ticket: #14568

Waiting a reply from SESI but not actually define as bug.
User Avatar
Member
245 posts
Joined: Sept. 2008
Offline
Thanks for communicating with SideFX about this. But I hope they look at this post again before determining that it's a bug.

You see, In Maya you have CV's which are Control Vertices determined by UV and you have Edit Points which are actual cartesian coordinate points on the curve. My workflow in Maya was to select the Edit Points and break the curve at those locations rather than at the Control Vertices.

I suspect that the Carve Sop only cuts on control vertices (although I did notice a difference in carves when comparing the same values output by the expression versus manually entering the exact same values without an expression).

What we need is a tool that cuts on Edit Points, the cartesian coordinates of the curve, so that you can actually put in a point expression such as:

point(“../previous_sop”,10,“P”,0) so that you are getting the X position of the point number 10 on the curve. That point on the curve will be different than the point CV number 10 which lies off the curve.

At least that is what I think is going on under the hood.

Thanks again for your reply and for your example.
User Avatar
Member
140 posts
Joined: July 2005
Offline
deleted
Edited by - Sept. 10, 2013 19:26:10
User Avatar
Member
140 posts
Joined: July 2005
Offline
The carve SOP doesn't respect local variables either, so have fun with the foreach SOP. oops
User Avatar
Member
245 posts
Joined: Sept. 2008
Offline
Good call. Rather than use expressions though I was hoping of a way to interactively carve, similar to PolySplit
User Avatar
Member
245 posts
Joined: Sept. 2008
Offline
I also see that Carve accepts a group input, but the group mask is Primitives. There should be a separate group input for a point mask.
User Avatar
Member
4672 posts
Joined: Feb. 2012
Offline
How would a point group work though? Primitive group isolates the curves/polygons you want to carve.
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
245 posts
Joined: Sept. 2008
Offline
A point mask would work by selecting points on a single primitive via the group sop either by range/expression/etc or interactively by creating the group of points in the viewport. With that group of points you could in one swoop (sort of like the Edit Sop) carve at all grouped points at once.
User Avatar
Member
1192 posts
Joined: July 2005
Offline
fsimerey
Submitted as bug.

SESI support is looking for this. Support Ticket: #14568

Waiting a reply from SESI but not actually define as bug.
That is not a bug.
UV in Carve SOP understanding means the parametric u and v of a spline or NURBS surface. It has nothing to do with Texture coordinates (UVs).
So a point's U and V texture coordinates would in most cases have no connection with that point U and V parametric location on a spline surface.
If the surface is actually of Mesh type and you apply Row and Columns Texture UVs using the Texture SOP, then the two (parametric UV and texture UV) might be the same.
Some expressions that work with parametric UV (I doubt they'll help here):
http://www.sidefx.com/docs/houdini12.5/expressions/uvdist [sidefx.com]
http://www.sidefx.com/docs/houdini12.5/expressions/xyzdist [sidefx.com]
http://www.sidefx.com/docs/houdini12.5/expressions/primdist [sidefx.com]
http://www.sidefx.com/docs/houdini12.5/expressions/primuv [sidefx.com]

Dragos
Dragos Stefan
producer + director @ www.dsg.ro
www.dragosstefan.ro
  • Quick Links