Evan Robinson
evanrudefx
About Me
freelance vfx
専門知識
VFX Artist
業界:
Film/TV
Connect
LOCATION
N/A,
United States
ウェブサイト
Houdini Engine
Availability
I am available for Freelance Work
My Gallery
チュートリアル
Recent Forum Posts
Simulation workflow for generating guides from static hair 2026年4月15日14:18
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.
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.
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.wooseungAs 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:
Is it correct that the issues mentioned above are related to the guide groom / hair generator as I suspect?
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.
Simulation workflow for generating guides from static hair 2026年4月14日14:35
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
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
Houdini with Linux and Wayland 2026年3月29日18:36
should we report bugs we encounter, or is it not worth it since wayland isn't officially supported?