Creating my own Extrude

   5765   7   3
User Avatar
Member
19 posts
Joined: Feb. 2006
Offline
Hi guys,

Okay, after a lot of blood, sweat and tears, I finally figured out how to make my own poly extrude network, i.e. something that extrudes each separately connected set of polys along it's own vertex normals. At the moment, I've got a primitive group which I pass into the network to indicate which polys to extrude.

My question is, what's the best way in Houdini to package this network together into something that can be re-used easily?

I suspect the answer is to make a digital asset? If so, is there a way to make it as seamless as possible with the other SOPs? E.g. how do I pass the current polygon selection to it instead of passing a group name? Do I use a string with the primitive indices? How do I tie that in with the selection when the node/asset is created?

Also, I've played around with VOP SOP definitions which seem pretty cool. But am I right in thinking that you can't create new geometry with these? You can only deform existing geometry? What about if I used VEX code itself? Does that open up any possibilities?

Sorry, lots of questions I know, but I think I'm nearly there in terms of figuring out how all this stuff fits together, so whatever light you can throw on this will no doubt help enormously.

Thanks a lot.

Andy
User Avatar
Member
398 posts
Joined: July 2005
Offline
E.g. how do I pass the current polygon selection to it instead of passing a group name? Do I use a string with the primitive indices? How do I tie that in with the selection when the node/asset is created?
You can bind selectors to parameters of your asset which will allow you to work with your asset in the viewport as with any other Houdini operator. And of course you can mimic a behaviour of the Group parameters using Script Type Menu.
You can only deform existing geometry? What about if I used VEX code itself? Does that open up any possibilities?
With VEX SOPs (and VOPs which are just visual representation of VEX code) you can only modify attributes. With HScript/Python you can create new operators (so you can create geometry). With Python probably… maybe in the nearest future… you can generate geometry. But I suppose that now you can only modify existing geometry.
f = conserve . diffuse . advect . add

fx td @ the mill
User Avatar
Member
19 posts
Joined: Feb. 2006
Offline
Okay cool, thanks for the help. It's good to know I'm heading in the right direction. After I posted, I started to look at getting my network into a digital asset and I started to come across the technique of “binding selectors” that you mentioned.

However, I'm finding the docs on “omsbind” a little hard to figure out. This is what I've got so far…

omsbind -t sop group1:pattern prims “APNExtrude” “Select polygons” 0 1 poly 1 “” 1
which I've put inside the “Before First Create” event.

The problem is that I'm just guessing what to put in for the node and parameter name. At the moment, it's set to “group1:pattern” which is the first group SOP in the asset which sets the primitive group so that my extrude network knows which polys to work with. The “pattern” bit is the name of the pattern parameter in the group SOP.

When I create the asset I don't get a prompt to select anything, so I'm guessing that what I've put here is wrong. Any clues as to what I should be putting in here?

Thanks

Andy
User Avatar
Member
221 posts
Joined: July 2005
Offline
it's been 4 months since you posted this and I am exactly where you were at that point.

I've done this before, but it was a long time ago and now I want to do it again.

Did you ever get an answer as to what to put in that field? I thinkyou put the name of your HDA. If I get this figured out, I'll write back here.

Dave
User Avatar
Member
2199 posts
Joined: July 2005
Offline
The sop will be the name of the asset you have created and the bit after the colon is the name of the parameter to bind to. To get this to work you need to promote your group parameter for the group sop inside the asset to the top level and then supply that as the path to bind to.
The trick is finding just the right hammer for every screw
User Avatar
Member
221 posts
Joined: July 2005
Offline
What if I don't have a particular group parameter to promote, can I just make the omsbind point to any string field on my HDA?

What I want to do is to parse the numbers that end up in that line and use parts for one sop and other parts for other sops inside my HDA. And I'm still doing this part in h8.

Dave
User Avatar
Member
2199 posts
Joined: July 2005
Offline
never tried it, but I don't see why not. The group parameter is basically a string field but with an extra menu for picking named groups.
The trick is finding just the right hammer for every screw
User Avatar
Member
221 posts
Joined: July 2005
Offline
I got it to work with just a string field, but I think that what I'm trying to do is too hacky. I'm going to rethink the way I'm doing it and use a different approach. Thanks for your input.

Dave
  • Quick Links