Blender Git Commit Log

Git Commits -> Revision a8cf092

Revision a8cf092 by Lukas Toenne (master)
January 20, 2015, 08:30 (GMT)
Fix for Sintel hair bug.

The hair solver needs sane input to converge within reasonable time
steps. In particular the spring lengths must not be too difference
(factor 0.01..100 or so max, this is comparable to rigid body simulation
of vastly different masses, which is also unstable).

The basic hair system generate strands with equally spaced points, which
is good solver material. However, the hair edit operators, specifically
the cutting tool, can move points along the strands, creating tightly
packed hair points. This puts the solver under enormous stress and
causes the "explosions" observed already during the Sintel project.

The simple solution for now is to exclude very short hairs from the
simulation. Later the cutting tool should be modified such that it
keeps the segments roughly at the same length and throws away vertices
when the hair gets too short (same goes for the extension tool).

The hair system should have a general mechanism for making sure that
situations such as this don't occur. This will have to be a design
consideration for replacements in any future hair system.

Commit Details:

Full Hash: a8cf092160d88df5f97514d8356b155a6820e22f
Parent Commit: 6623395
Lines Changed: +57, -18

1 Modified Path:

/source/blender/blenkernel/intern/particle_system.c (+57, -18) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021