Recently discovered something that ruins geonode hair for fur on animated characters, if a mesh has an unapplied subdivision modifier, interpolated hairs created by interpolate hair curves will clip into the mesh. This issue will disappear once the subdivision modifier is applied (unideal solution due to the fact that subdivided meshes are a PITA to modify)
From my understanding, this seems to just straight up be a technical issue/flaw with how the rest_pos attribute works and thus isn’t fixable from within geonodes. I hope this isn’t the case, since this absolutely ruins my ability to use geonode hair for animated characters.
Attached is a blend file which demonstrates this issue on a static suzanne model. You will notice bald spots which can’t be fixed by adding extra guide curves. Applying the subdiv modifier on suzanne will get rid of the bald spots.
Some solutions I’ve tried that DON’T work/are unideal:
- Moving surface deform to the top of the hair curves modifier stack and unchecking ‘Surface Rest Position’ on interpolate hair curves node group
This only works for static characters that don’t deform. If used on a character with an armature or shapekeys which deform the surface of the mesh the curves are attached to, they will move positions and jitter.
- Don’t use interpolate hair curves and instead add all hairs manually
I’m working on stuff with millions of hair strands. This will not work without interpolate hair curves where I can reduce the amount of strands at any point to improve viewport performance.
- Apply the subdivision modifier
Already mentioned why this isn’t an ideal solution. Subdivided meshes are a PITA to modify after the fact, and is also impossible if your mesh uses shape keys since you cannot apply modifiers (easily) on meshes with shape keys.
Is there any other solutions I can try? This is a huge block for me to be able to work on stuff and I really hope this isn’t a technical issue where I have to stop working on my stuff and wait for a fix to be released.
SUZANNE fur groom clipping.blend (3.7 MB)