Blender Git Commit Log
Git Commits -> Revision f707165
Revision f707165 by Lukas Toenne (temp_merge_gooseberry_hair) January 19, 2015, 17:04 (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: f7071653e6a311e0be8ff708f8bfcc0e00a08b55
Parent Commit: 4a7e464
Lines Changed: +57, -18
1 Modified Path:
/source/blender/blenkernel/intern/particle_system.c (+57, -18) (Diff)