My custom Houdini hair workflow

   6489   8   5
User Avatar
Member
453 posts
Joined: April 2018
Offline
Howdy all, I wanted to share the Houdini hair workflow I developed on my current portrait project. I think it's a lot more efficient than the Houdini shelf tools. It eliminates a huge number of extraneous features and focuses on the things that make XGen popular with artists (for good reason). I'm pleased with the results it let me achieve with VERY little effort. All the tools I need to get something up and running quickly are there, with plenty of room for customization of tiny details as needed.

First, the finished product, rendered in Octane. Keep scrolling down for how I set up the tools, with descriptions and illustrations.



Here's the full node setup for the entire head groom (no lashes or brows). None of the unusual parenting workflow that Houdini defaults too. Just two nodes with guides and three for the different hair sections. The null is just there to move them all around as a unit if needed.



Here is the template for guides. You can choose to either scatter or plant them. They're converted to ribbons with customizable width and color to match the easy viewing experience of XGen.



Next up, import the guides into a new node and generate the actual hairs. The template includes a space to paint density. Of course you can add any other painted attributes you want.



This one is super important. Clump visualization and a greyscale gradient to make it clear what's going on. Without this it's hard to tell what on earth you're working with. This makes individual hairs and how they're layered obvious so you can go in and work hair by hair if you need to.




From here on out you can put in all the guide processing you want, group hair sections, brush by hand, and add clumping. I like to cache things out to .bgeo every once in a while so the entire tree doesn't have to process when you load the project. The very last node is the width control. This means you never have to recache any groom stuff to update width that was changed downstream. I made a control for global width and hair taper.



And that's it! Fiddle with details to your heart's content, then slap on a hair shader from any renderer (they all recognize the "width" attribute) and you're done! I won't claim this is particularly elegant and I'm sure there's tons of room for improvement. But, I hope it inspires others to dive in to get their hands dirty a bit and customize Houdini. The artistic control is INCREDIBLE and this is all much more stable than XGen, in my experience. Once you get the basic idea of what nodes are needed (hair gen, scalp collider, paint attributes, etc) then it's all pretty straightforward. Definitely worth doing to make for a more pleasant creative experience.
Edited by BrianHanke - Feb. 10, 2021 21:13:28

Attachments:
Roseangela Octane 03 Final.png (5.0 MB)
02.png (12.6 KB)
01.png (190.0 KB)
03.png (28.3 KB)
04.png (378.8 KB)
05.png (438.9 KB)
06.png (75.2 KB)

Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
38 posts
Joined: June 2019
Offline
Hey BrianHanke, just wanna thank you for this setup. I'm diving into Houdini hair system, and like a lot your configuration !
User Avatar
Member
453 posts
Joined: April 2018
Offline
frBorges34
Hey BrianHanke, just wanna thank you for this setup. I'm diving into Houdini hair system, and like a lot your configuration !

Cool, glad to hear it!
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
38 posts
Joined: June 2019
Offline
Edit : forget my question, one of my nodes wasn't properly wired. But now another pb cames out, the hairs don't follow the uide, but I'll investigate further more !


Hello @BrianHanke,

I've used your hair config a few times without any problems, but I'm facing something that I can't manage to resolve, maybe you could help me !

I've imported an fbx as my face object, and the whole guide creation process is working well, but I have an error on the hairgen node, inside the Hair_generation, that despite all of my debugs, I can't resolve.

Invalid source /obj/Hair_generation/hairgen1/hairgencore
Error: Invalid skinprim attribute values found on guide curves.

While in the same project, if I replace my fbx object with any other geo, it works like a charm !

Maybe you have any clue ?

Thanks in advance
Edited by frBorges34 - Dec. 8, 2021 14:45:35

Attachments:
HairgenError.png (147.7 KB)

User Avatar
Member
453 posts
Joined: April 2018
Offline
Looks like you need to merge your skin and connect that to the left input on hairgen1. Right now you have your guides connected there.
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
38 posts
Joined: June 2019
Offline
BrianHanke
Looks like you need to merge your skin and connect that to the left input on hairgen1. Right now you have your guides connected there.
Yes, thks for your answer, that was the point of my edit, it wasn't properly wired !
Edited by frBorges34 - Dec. 8, 2021 16:33:16
User Avatar
Member
38 posts
Joined: June 2019
Offline
By the way, did you have any idea how would be the best way to animate this setup ? Cause I can't manage to make it work with the guide deform node, an error indicates the my two geometries don't match (while they are !)
User Avatar
Member
453 posts
Joined: April 2018
Offline
frBorges34
By the way, did you have any idea how would be the best way to animate this setup ? Cause I can't manage to make it work with the guide deform node, an error indicates the my two geometries don't match (while they are !)

I'd use vellum to animate the guides. See attached file for an example. I resampled the curves and added the curveu attribute, then pinned the guides to the animated geo wherever @curveu<0.05.

Attachments:
hair_anim.hiplc (561.7 KB)

Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
38 posts
Joined: June 2019
Offline
BrianHanke
frBorges34
By the way, did you have any idea how would be the best way to animate this setup ? Cause I can't manage to make it work with the guide deform node, an error indicates the my two geometries don't match (while they are !)

I'd use vellum to animate the guides. See attached file for an example. I resampled the curves and added the curveu attribute, then pinned the guides to the animated geo wherever @curveu<0.05.

Very simple and efficient, thanks again !
  • Quick Links