Simulation workflow for generating guides from static hair

   357   4   2
User Avatar
Member
3 posts
Joined: 12月 2023
オフライン
I'm exploring the hoodini hair simulation workflow. Generally, the hoodini hair seems to be necessary in the order of guide groom, guide deform, guide sim, and hair generator. In the simulation, the guide is simulated and the final hair is created by the generator.

It's like a workflow where guide grooms, hair generator, always have to be pubed together from grooming part to simulation part.

In another workflow, I used dgroom plugin to create a guide hair in the simulation part, and I saw a way to deform the final static hair. But this workflow is thought to be a more unpopular workflow (I've rarely seen tutorials other than gnomon)

There seems to be a huge difference between these two workflows: final static hair vs guide room, hair generator.

Personally, if you can create and use the guide directly from static hair, it seems more flexible, is there a reason why you always need a hair generator that I don't know?
User Avatar
Member
276 posts
Joined: 2月 2016
オフライン
Hey!
I also have used the dgroom plugin and I love it. I have worked with 3 different workflows.

1. The default houdini way is generating hair each frame by passing the hairgen node animated guides and animated skin, then the hair gen outputs the hair to match the animated skin/guides.

2. Generating guides/hair curves in a static pose/rest. Then you keep those guides/hair curves and use them with guide deform to animate them.

3. Generating guides from hair curves. I usually use this when I am given a hair curves but not given the guides (or if the guides I am given are too sparse for good deformation). Guides are then generated to use later on.

I have mostly used the second method because most of what I have worked on was being given hair/guide curves from another department that used xgen/maya. The first method I rarely use because I am usually given groom data (groom meaning both hair and guide curves) from another program or the groom is made in houdini but needs to be made in a static pose for some reason or another. The first method will give you the best results, though.

Sounds like you are asking whether or not it's best to keep the guides or to just generate guides? To answer that, I think most of the time it's better to just keep the original guides. Since the hair is generated based on those guides, those guides are better suited to being used for deformation then to create your own guides based on the hair curves. Another bonus is if you use a full houdini workflow, you can save the generation weights on your hair curves so that it knows which guide/s created it, so it knows which guides to bind each hair curve to for deformation without having to compute that.

Now, there actually was one case where I benefited from generating guides even though I already had the source guides. In this scenario, the guides I was given were too sparse, so when I deformed the hair curves based on the guides the motion wasn't great. So I generated a denser set of guides using dgroom which gave me much better deformation.

Anyway, I hope this answered your question. If not or if something was unclear let me know : )

edit: I forgot to add, you can always use the groom pack/unpack node so that you can condense your guide/hair curves into one stream and cache it to disk easily.

edit 2: I fixed how I was incorrectly referring to the hair curves
Edited by evanrudefx - 昨日 14:56:59
Thanks,

Evan
User Avatar
Member
3 posts
Joined: 12月 2023
オフライン
Thank you for your response! evanrudefx

Overall, my thoughts align with yours. If a guide groom is already available, I believe using it in conjunction with a hair generator is the best way to achieve diverse variations.

However, I’ve encountered some issues that I suspect are stemming from the use of the guide groom/hair generator setup. As you mentioned, when there are too few guides, the hair tends to flicker (appear and disappear), or the guide simulation remains smooth while the hair itself bounces. In these cases, I’ve been manually selecting and removing individual hairs—luckily, the situation in this project allowed for that—but it feels like a completely undesirable approach within a professional pipeline.

Secondly, because the pipeline wasn't very sophisticated, it was extremely difficult to track the root cause when problems arose with the guide groom or hair generator. Since I’m a Houdini novice, this feels like a particularly big challenge.

As you said, if you were in my shoes, you would have likely created the guides from the groom, right?

I have a few additional questions:

Is it correct that the issues mentioned above are related to the guide groom / hair generator as I suspect?

I’d like to clarify the terminology. Can I assume the 'guide' you’re referring to is the guide groom node, and the 'groom' refers to the curves created by the hair generator?

Additionally, could you tell me where I can check the generation weights you mentioned?
Edited by main.wooseung - 2026年4月14日 23:22:14
User Avatar
Member
276 posts
Joined: 2月 2016
オフライン
Hello,

My apologies, I should have specified my terminology. When I say guides I am referring to the guide curves and when I said groom, I was referring to the hair curves (or the curves that get rendered). I actually didn't mean to call them groom curves, I meant to call them hair curves. I usually use the term groom to refer to the full set of curves, both hair and guide curves. I also edited my original post to make it easier to understand. It's a bit confusing, in houdini there isn't really a literal difference between guides curves and hair curves. In houdini, it's all just geometry. The terms more so refer to what we use the curves for vs what they actually are. If you go inside the guide groom obj you will see those guide curves are created using the hair gen sop. If you go inside the hair gen obj you will see the hair curves are created using the hair gen sop as well. If you look inside any of the hair OBJ nodes they are all pretty much using the same nodes internally, hair gen sop, guide deform sop, etc.

It's hard to diagnose what the issue might be without seeing the issue or the scene. If you had too few guides, I wouldn't expect the hair to appear and disappear (unless you mean it's going inside and outside the skin geo due to bad deformation), I would just expect these two issues:

1. The motion on the hair curves is too uniform and not a lot of individual motion
2. The deformation may deform the hair curves in unpleasant shapes, like knots or being crinkled

If you have too few guides, I would either create more guides based on the hair curves like you said, or I would just modify the original guide curves. Of course modifying the original curves would affect the hair curves, so you might have to make changes to the hair curves too.

main.wooseung
Is it correct that the issues mentioned above are related to the guide groom / hair generator as I suspect?
As I said earlier, it's just speculation on my end since I can't see it myself. But it could very well be the issue. There are a few trouble shooting options. I would try trouble shooting at SOP level and not using the obj nodes. The obj nodes hide a lot about what is going on. Here is what I would try:

1. Import just the hair curves, the rest skin, and the animated skin into a geo object separate from everything else. Then place a guide deform sop down, and plug everything in the correct input. Use the default mode on the guide deform node (deform only by skin). Make sure the hair curves can follow the skin and everything is fine.
2. For the second test, keep the first setup, but also import the rest guides and the animated guides (not the simulated guides, just the guides that follow the character animation). Then plug those into the last two inputs of the guide deform. Then switch the mode to guide capture and deform. This uses the guides and the skin, so we can test for issues with the guides. Next I would probably switch the method on the guide deform to barycentric weights. See if the hair curves follow the guides and skin properly.

If both of those tests work properly with animation and no simulation, then it could indicate that your issue is too few guides as you said. It could also indicate that maybe there was a issue binding the hair curves to the guide curves causing poor deformation.

For the generation weights, you can check the photo I attached. If you enable "perform hair generation and editing at rest" on the hair gen OBJ then you switch the method to use generation weights. When you enable that, it's just turning on the option on the internal hair gen sop "create guide weights and attribs" If you remember the step earlier for testing the hair, I mentioned using the guide deform and using barycentric weights? If you had this weights options turned on, then you could switch the method from barycentric to use use existing weights. You can also tell if that setting is on by checking the hair curves for the two primitive attributes "guides" and "weights". They are arrays that store which guides were used to create the hair curves and how to weight each guide.

Again, I hope this was helpful. Just let me know if you have other questions.
Edited by evanrudefx - 昨日 14:58:03

Attachments:
weights.JPG (134.7 KB)

Thanks,

Evan
User Avatar
Member
3 posts
Joined: 12月 2023
オフライン
Oh...! Thanks to you, I think I know what the problem is with my scene. Thanks for the tip! I'll give it a try as you said
  • Quick Links