Dynamic hair kink braid style recalculates curves on each frame
Closed, ArchivedPublic


System Information
Debian testing, Nvidia GTX 780

Blender Version
Broken: 2.78c

Short description of error
When you enable hair dynamics, random stiffness and kink style = braid, some curves get resolution (or CV positions) recalculation on each frame. Which leads to animation artifacts.
That only happens, when random stiffness is enabled, and not represented on the rest of kink styles.

Exact steps for others to reproduce the error
Open file and click play.



It is the nature of hair children to be recalculated at each frame to satisfy balance between memory and computations.
Simple children are just duplicates of a hair guide with a modified shape within a certain radius.

Interpolated particles are deducted from existing hair guides.
Interpolated particles are spread to the surface.
If a particle system have only two hair guides that take two different positions, shapes ; interpolated particles will take intermediate positions, shapes.

It may explain why with a ramdom stiffness that implies some hair guides with different shapes some particles have an incoherent resizing, here.

Solution is to force children to take only one hair guide as parent.
You just have to set Parting setting to 1 to resolve problem in your .blend file.

I don't know if it will satisfy you for a more complex hair system on a real character.
But I think problem was present in older blender versions. am not sure it can be considered as a bug.

Honestly, hair creation and hair dynamics could be improved at many levels.
But it is a complex subject that requires developers availability. None is actually officially in charge of particles code.
Most of blender developers are engaged into 2.8 project that focus on a better viewport, a better cycles and a better UI.
Particles rethinking was postponed to 2.9 series.

Yegor (Yegor) added a comment.EditedApr 2 2017, 1:02 PM

Oh, thank you! Parting solves the problem in my situation. But hope that will be resolved in the future.

UPD: sorry, it actually does not solve the problem, only reduces occurrences. I you add some turbulence field to it for more motion, you'll see.

Luca Rood (LucaRood) closed this task as Archived.Jun 6 2017, 11:30 AM
Luca Rood (LucaRood) claimed this task.

Regardless of recalculating on every frame or not, this is undesirable behavior and should not happen with a proper interpolation system.
However, particles and caching are subject to an overhaul in 2.8, so we are limiting the work on the current system to only regressions.
Thanks for the report, but as this is not a regression, archiving it for now.