Hair curves randomizing with movement

Hello,
I am using the new geometry node based hair system in Blender 3.5. However, I find that whenever the character is moving, it looks like the interpolated hair gets a different seed, as it still follows the hair guides but with a different interpolation. This results in different hair in every frame, which looks like either wind or noise. It might be unclear explained this way, so here is a little video of it in action :

Not all hair does that, for example, I have another character whose eyebrows did the same, but fixing any overlapping UV map (made it overlap because of a different material on another part of the model btw) fixed it for the eyebrows and doesn’t fix it for those hair.

I tried re-parenting, I checked if the character’s body was really selected as the surface. I checked my geometry nodes to see if it was a node in particular, and the bug happens during interpolation, not before when deleting unused geometry, or after when adding noise to them. However, I found out that when disabling the interpolation, the guides doesn’t seem to follow the head’s animation, which might be the cause of my bug. How do I make it follow the head? Or is it something else which causes it?



hairproblem03

Thank you :slight_smile:

hello !

Can you share a test file , like a simplified version of the problem ?
I didn’t look into hair system that much but it can be fun to hunt down the bug !

Probably you generate hairs on animated mesh (but you need to animate hairs and mesh straightaway).

Thanks for wanting to check out :slight_smile:

(sorry for the size, I tried to reduce it but couldn’t get it under 38,4 Mo, and I had to use wetransfer because blenderartists told me there was an error once reaching 100% at upload)

By the way, the hair do follows the head actually. Yesterday, I forgot that by disabling the whole geometry nodes modifier, the “deform curves on surface” node wouldn’t be active either. So I don’t think it’s the cause of my problem.

By looking around more, I found out the problem comes from both the “Hair Curves Noise” and “Clump Hair Curves” nodes, as they seem to be based on World Space (maybe?)
Anyone knows about a fix for that? maybe even inside the nodegroups themselves?

Hello,

did you fin the answer? I had a similar problem and found out that the surface deform modifier needs to be after the clum, hair and noise modifiers, ideally at the end.
My animation also look like wind blowing through the hairs, but if you think about it, it is logical, the deformation of the surface is applied before the hair noise and clump are generated, thus making the noise generation doing this wind effect. At least in my experience.

Hi,
Yes, I eventually found the solution was to put the surface deform modifier at the end, and also checking “Surface Rest Position” in the interpolate node
Have a nice day :blush:

2 Likes