Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-12-27 13:35:31 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-12-27 13:35:31 +0300
commit81ab9ef968d392aa8edc79566bf02e23f93da7a8 (patch)
tree62a930e071a6a96ba5b6deaa891caca2d068d62b /source/blender/blenkernel/intern/cloth.c
parent2c0c1f494dcfadb3c01d23e2348e28bc8864e9f3 (diff)
Fix T56595: Hair Dynamics stop working after saving new file
The issue was caused by NaN valid of the average spring length being stored in the file. This caused accumulation in the springs builder to also deliver NaNs, which then caused solver itself to not do anything. Not sure why these values where never initialized prior to the accumulation. Or even, why this runime data is stored in a DNA. Some sanitizing is possible here, but needs to be done with care to not disrupt Spring production.
Diffstat (limited to 'source/blender/blenkernel/intern/cloth.c')
-rw-r--r--source/blender/blenkernel/intern/cloth.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index 9666b1ef68f..5396a1905b9 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -1285,6 +1285,11 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
if (!edgelist)
return 0;
+ clmd->sim_parms->avg_spring_len = 0.0f;
+ for (i = 0; i < mvert_num; i++) {
+ cloth->verts[i].avg_spring_len = 0.0f;
+ }
+
// structural springs
for ( i = 0; i < numedges; i++ ) {
spring = (ClothSpring *)MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" );