Hello !!! as promised, here a little behind the screens post. First starting with some model and lookdev:
Raw body without fur
Raw body grey shaded and displace
Inner mouth
The meniscus is dynamically created through geometry nodes, by creating a line where the eyeball and the eyelid touch, so I didn’t have to worry about rigging this up:
I took this project as an opportunity to develop a face shape addon, which rather easily allows to create/adjust shapes and put them all together in a geo nodes setup.
The main shapes are being stored as an attribute on a separate head, which then drives the head of the main body. There are some nice functionalities, like a mirror function, updating the neutral version if this should have changed.
The geometry node tree then puts everything together and sets up any inbetween shapes, or combination shapes. This addon is still under heavy development and not ready for sharing yet.
As far as the fur is concerned, I decided to not work with a modifier stack, but rather (a rather big) single node tree
It looks very chaotic, however after all it really isn’t. The benefits of working in a tree and being able to fully utilize geometry nodes are massive. Literally everything can be controlled almost down to the single hair. Here I separated the groom into three parts, simply for performance reasons. Having 100s of 1000s of strands, quickly brings blender onto it’s knees.
Groom in viewport
For general control, I created a bunch of multichannel mask, so I have three mask in one file. A few examples are these:
Groom body parts
Groom density
Groom clump size
There are several more masks being used, in order to control specific areas, like thinning the hair, or where I want it to curl a little etc.
An additional mask is the probability mask, which is purely for lookdev
With this mask I’m using the red, green, and blue components, so determine the likely hood that the hair is white for example. For this workflow I did a little video a while back:
Also thanks to working in a node tree for the fur, there are several attributes which can be stored and used in lookdev. In my example I used the clump index to get a random value per clump, which helped even more to take out some uniformity:
Alright, I think that’s it really, I hope this is an appropriate insight.
Thanks a bunch,
Stefan