Jump to content
jim c

Fur and getting guides to work

Recommended Posts

I'm trying to add long(ish) hair to a female character using the Fur tools. I can get the hair to work, I can get the various length/density/cut maps to work, and after fiddling with the Stiffness attributes I can get the fur to sort of resemble hair, but it's not very easy to control. So, I figured that guides would be the answer, except for the life of me, I don't understand how we're supposed to do this.

1) is it the case that you can feed in a a geo object that has the guides into the fur object created with the fur tools? Because if this is the case then I don't see how this can possibly work - it certainly doesn't for me.

2) If the above is incorrect, then is the understanding that we have to edit the fur asset that's created by using the fur tools? I.e. we need to go to the guide sub node object and then edit that?

3) if #2 is correct, then how to work with a reasonable set of guides that can be manipulated? According to the docs (and what I got to work with a simple test that uses the fur SOP, not the fur asset that's auto created for you) you need to feed in one guide per point on the skin geo. However if you have a head that's got 5K pts, but you're using density/length maps to control the hair, then you end up with LOADS of superfluous guides. If, on the other hand, you use a group to limit the skin surface, from this will work great for limiting your guides BUT it then seems (from what I can tell) that when you add dynamics the hair wires fall through the skin that is NOT in the group! So I'm completely confused as to what to do here.

Is there something obvious that I'm missing here? What I'm ultimately wanting to do is to be able to control the initial state of the hair before it gets fed through the simulation to help get to decent initial pose. Perhaps there's another way to do this that I'm not aware of. I've been through most of the sidefx docs on this and watched the Fur Masterclass a couple of times. If it matters I'm using Houdini 10.

Share this post


Link to post
Share on other sites

3) if #2 is correct, then how to work with a reasonable set of guides that can be manipulated? According to the docs (and what I got to work with a simple test that uses the fur SOP, not the fur asset that's auto created for you) you need to feed in one guide per point on the skin geo. However if you have a head that's got 5K pts, but you're using density/length maps to control the hair, then you end up with LOADS of superfluous guides. If, on the other hand, you use a group to limit the skin surface, from this will work great for limiting your guides BUT it then seems (from what I can tell) that when you add dynamics the hair wires fall through the skin that is NOT in the group! So I'm completely confused as to what to do here.

Is there something obvious that I'm missing here? What I'm ultimately wanting to do is to be able to control the initial state of the hair before it gets fed through the simulation to help get to decent initial pose. Perhaps there's another way to do this that I'm not aware of. I've been through most of the sidefx docs on this and watched the Fur Masterclass a couple of times. If it matters I'm using Houdini 10.

In Houdini 11 you can use scattered guides which means you don't need to have one guide per point.

As for grooming those hairs, recently (as of yesterday) I got some help getting Blender to work with Houdini. So i groom the long guides in Blender (with their amazing tools) and then bring those guides into Houdini and connect them to the fur asset.

The great thing is in Blender i can add/remove guides if i need to and it doesnt matter. I have yet to test the animation side of fur right now im working on getting the long hair to look half decent.

But im pretty sure you will need Houdini 11 to get this to work as the new scattered guides feature allows for more/less guides per point. If not, im not sure if you can implement it manually.

Share this post


Link to post
Share on other sites

OK well how are you connecting them into the fur? Are you manually altering the fur asset that was created by the shelf tools? That's part of question, is how to actually get control of that. Currently I'm building up a custom fur asset that will allow me to customize the guides.

Also, how are exporting the guides from Blender? Modo has hair guid tools as well, they are quite nice, but I can seem to get the FBX export to generate curves or Houdini doesn't understand them correctly. However with a little tweaking, I was able to convert the polygon shapes that result into a curve that's pretty damn close, so that might be a possibility.

Share this post


Link to post
Share on other sites

Yeah in the guides part of the fur asset there is a point in the network where it chooses either 1 guide per point or scattered guides. This is the point where you can bring in your own groomed guides from blender or from shave. With a number of transferred attributes and cvex vops your guides will then have all the necessary attributes needed to generated the interpolated fur strands.

Again this is a H11 feature so you might want to check out how guides are dealt with in the fur tool. An since its all in the typical asset form you might be able to replicate this functionality in H10.

I think i will do a video showing the workflow because without buying shave, its virtually impossible to groom a large number of guide points into your desired hair style and there are a number of steps and parameters to deal with not only in Houdini but also in Blender. I cant say when but i will get on when i understand as much as i can about the the setup.

Share this post


Link to post
Share on other sites

OK, well that would be interesting. Currently I'm looking into the Hair module in Maya, that seems a whole lot easier to work with so far.

Share this post


Link to post
Share on other sites

Indeed. I don't blame you :). A lot of things in Maya are easier but then you have the ultimate trade off between customization/functionality vs speed/ease of use.

Its all about getting the job done though, and if you have limited time for learning/getting to grips with a new technique then sometimes it best to go with something easier.

Edited by phrenzy84

Share this post


Link to post
Share on other sites

Well I may come back to it. I don't mind customizing assets and digging into DAs, but there's *SO* many variables with this it's hard to know what to focus on. And the lack of a *good* way to manipulate the guides is a major hassle. It's a shame because I can clearly see it's easy to use for fur or for shortish hair. But it's got some awfully big missing pieces as a reasonable solution for long hair. And since I'm doing this in my spare time, it's not like I can just call up sidefx support like I'm pretty sure would be the case if I were in a studio.

Share this post


Link to post
Share on other sites

Well the way i look at Houdini for me, Im more of an artist. Nowhere near as technically knowledgeable as most members here but more than most artists (i would like to think :)). I use Houdini like an artist would use maya, though getting "stuck in" is something I like doing and its really gratifying when you overcome a hurdle.

To be honest, the best hair tools for grooming long hair is either Shave or Blender. And with this new setup, all you have to do is plug in your guide curves from blender. So i would check out the way they groom hair because its easy and very intuitive (all brush/sculpting based, no painted attributes on the skin surface).

But for short hair, houdini out for the box will accommodate most needs.

Share this post


Link to post
Share on other sites

I have a large amount of stuff to say about this but little/no time...

however:

1 - install the flow_field proto sop

2 - I'll upload a vop that I got from SESI a while back that will maintain the guide length (essential)

with the above tools you can get some good stuff going with long hair...

Share this post


Link to post
Share on other sites

Michael, thanks for the tip. That does make things easier. I took your hip file, looked at it, then started a new hip file with my test head and came up with this in the Guides sub node.

First I imported the head geo:

post-4235-130677234152_thumb.jpg

Then grouped off the polys I want to grwo hair from and extracted that into a separate geo object ( I have no idea if this is the right way to do this, but it's less hassle, or at least it seems that way).

post-4235-130677235276_thumb.jpg

One of the things that seems to be different in H10 vs what is described in the Fur Masterclass video is the constraints on guide points. According to the video, you need to have exactly the same number of guide lines as points in the geo that gets fed to the fur SOP. Apparently this isn't the case any more as your example demonstrates. So with that in mind I tried this:

I reduced the scalp geo so I didn't have as many guides to deal with:

post-4235-130677236015_thumb.jpg

The editable guide lines I can adjust and add more points along the lines for further refinement.

Edited it them per your example:

post-4235-130677236874_thumb.jpg

After applying the whole network:

post-4235-130677238627_thumb.jpg

After running the dynamics wire solver added by the shelf tool:

post-4235-130677239594_thumb.jpg

Render:

post-4235-130677240423_thumb.jpg

So this is much better than I got before in terms of control.

Several things that still confuse me:

1) Is there a way to prevent from the wire dynamics from penetrating the scalp geo? While there's less of that than I had before, it's still occuring, and I'm curious how you deal with this?

2)Animation. I noticed that if I rotated the head on frame 1, (the scalp geo is parented to it), the hair deforms all over the place, presumably because the guide edits are in world space (?) and don't follow along. How should I deal with that?

3)When creating a real render, is there a way to get the hair to cast shadows? I was able to get this to happen in Maya relatively painlessly, so I'm curious what I need to do here, assuming it's possible.

4) Hair length. I seem to be getting a lot of straggling hairs, almost of random length. Is there something I'm missing to control this?

Share this post


Link to post
Share on other sites

I have a large amount of stuff to say about this but little/no time...

....tease....

I've had some thinging about things i miss as well. the different modes to edit the curves directly (rope mode - tip is movable, the percentage of the curve respects the internal spring/tension would be variable, and the root sticks), CV mode - where you could work on a HULL, or higher level of control ( means less number of CVs, so think along the lines of a poly-to-NURBS-to-resample ) AND the maintain length as you mentioned.

SO i was wondering. really what i was thinking about was could we script up a shelf tool to construct set of bones procedurally based on a selected curve. Plunking the root at the surface of the scalp. The IK handle will give you the rope mode, the number of CVs in the selected curve gives you a number of bones to give you the amount of "bendiness". the other side would be to do less than the number of CVs in the curve selected to give you a coarse curve manipulation. I was wondering if you used the IK handle and its LOCKing mode to give you a way to lock the end points a manipulate the internals of the bones(length) to adjust the curve yet another way.. yes of course that would mean you would have to generate a new length for the curves but it should be feasible.

It sounds like a lot of work that could be done via python shelf tools. Only lame thing it would be at the object level, which would mean you would have to go in and out (SOP-OBJ-SOP again ) of the geometryOP that had the selected curve and plunk it back in. You would have to make sure any attributes on the original curve would travel thought his sort of manipulation.

maybe if i'm crazy enough i'll try to do it.. maybe.. ;)

-k

Share this post


Link to post
Share on other sites

a few more points while I try to find that stupid VOP...

Several things that still confuse me:

1) Is there a way to prevent from the wire dynamics from penetrating the scalp geo? While there's less of that than I had before, it's still occuring, and I'm curious how you deal with this?

add the scalp geo (or better yet the whole head) to the DOPs network as a 'static object' - just use the shelf tool and leave it at the defaults, then go in and turn on the volume visualization to see what kind of sdf Houdini has made for you, play with the settings till you get a nice fit.

2)Animation. I noticed that if I rotated the head on frame 1, (the scalp geo is parented to it), the hair deforms all over the place, presumably because the guide edits are in world space (?) and don't follow along. How should I deal with that?

write out the edited guides as a new rest frame.

3)When creating a real render, is there a way to get the hair to cast shadows? I was able to get this to happen in Maya relatively painlessly, so I'm curious what I need to do here, assuming it's possible.

er...I don't know...do you have shadows turned on in your lights?

4) Hair length. I seem to be getting a lot of straggling hairs, almost of random length. Is there something I'm missing to control this?

yeah - SESI sent me a VOP a while ago that will take the deformed/edited guide curve and match it up with the unedited/undeformed guide curve...I know where it is I just can't find it :blink:

@thekenny

that's insane... :)

I could see the possibilities of having an IK edit mode in SOPs, but having that at the object level would be painful...and would you need that whole network for every edit? yikes!...

the way I've been thinking these days (given my current gig) is:

1 - SESI should build in those curve editing tools we had back on The Wild - they'd be useful for more than just hair

2 - hair IS NOT wires - the wire DOP is awesome and I love it, but when deforming hair you have to use such insane values to get anything halfway stable, and it's hard to really play with...there should be a new DOP for hair - that does 99% of what the wire object DOP does but does NO stretching at all...or some kind of option on the current one that turns stretching off...or add a node (C++ not VOPS) to maintain length...

3 - med to long hair is a pain in the ass...but the flow_field sop really is a marvel...I haven't done any really long hair with it yet but I think it's possible to use the flow_field almost like a 1D lattice, you can feed it partial curves (point groups) use all the usual SOP tricks after an before etc...the trick is to build the vector field properly...OBJ level stuff might be handy here...and there is an advantage in that the vector field doesn't have to be based on your guides at all...

Share this post


Link to post
Share on other sites

More fiddling around, this time trying to import curves from Modo.

I created a sphere in modo, then added hair guides to the top 3 rows of polygons. Modo adds 1 guid per point on the selected geometry. I exported all of this as an obj. The curves get turned into polygons, but the curve cv points appear to be in the right place.

I end up with this:

post-4235-130686394638_thumb.jpg

Then I used a foreach loop to unroll the polygon (using ends sop), deleted the last edge (dissolve sop), then converted to 3rd order NURBs curve. It seems pretty darn close to what was in modo.

Then I feed this as a the guides to a fur sop. However, as you can see things, don't quite work! Anyone have any ideas what's wrong with this? I'm attached the hip file if that helps.

post-4235-130686396266_thumb.jpg

If I can get this to work, then it would appear that this becomes a more reasonable way to edit the guides and style the hair rather than fight with point editing in Houdini.

hair test3.hipnc

Edited by jim c

Share this post


Link to post
Share on other sites

@thekenny

that's insane... :)

I was only thinking of it as a modeler :)

oh and the other thing to remember the flowfield is great, but it will smooth out your guides if applied directly to them. Retaining some shaping to the guide will be key to getting some level of "noise" to the hair. We had a ways to minimize it but you would run the risk of making straightened hair. There was a permSOP we had to ensure some of the noise was put back.

Thinking out loud about noise fields... if the guide was shaped by a noise field then you 'could' find someone smart to ensure that same noise was applied to the smooth curve as a warmed field of noise... kind of like a restSOP idea.

maybe maybe not.

Share this post


Link to post
Share on other sites

Anyone find anything in the hip file that might indicate what I did wrong? I'm pretty stumped and I'd like to see if I can this to work if possible, unless there's a better way to do this ("this" being editing the hair guides).

Share this post


Link to post
Share on other sites

Well I took another approach before I completely abandon this. I tried using polystrips for the hair. I used hte previous technique to bring in the curve guides from Modo. Then converted those polygons to curves and added a Wire simulation similar to what the Hair asset does. Then created poly strips swept along the curve and UV'd them. So the shots below are of the character I made that I ultimately want to add this hair to:

ZBrush model

post-4235-130737365946_thumb.jpg

Houdini screen:

post-4235-130737368601_thumb.jpg

Render:

post-4235-130737369387_thumb.jpg

Full render from turntable:

post-4235-130737372193_thumb.jpg

Turntable:

Share this post


Link to post
Share on other sites

would be cool if someone, who got it working could share a file..

i really need this to bring styling for long hairs in. but i just

cant get it to work with the fur asset. ( it works with the sop

but then tehres no cvex styling fetures anymore...)

Share this post


Link to post
Share on other sites

I can post what I got to "work", but I'm still struggling with the fur asset. I'll try and post what I have tonight. Basically all it does it read in the curves from Modo, and then uses those as the guides. But I think there still some issue with this process, either attributes that I'm not processing correctly or something else I'm missing.

Share this post


Link to post
Share on other sites

Closer. Now getting the guides to work. This is a first pass with trying to use the ssh_marschner hair material that ssh put up on the sidefx exchange.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×