Mesh: Fix applying deform modifier up to index
authorSergey Sharybin <sergey.vfx@gmail.com>
Tue, 17 Mar 2020 14:29:02 +0000 (15:29 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Tue, 17 Mar 2020 15:41:43 +0000 (16:41 +0100)
The code would have break the first (deform only) modifiers
once the index is reached, but it will not prevent second
loop (over remaining modifiers) from run.

This was applying deform modifier twice in some conditions:
having single deform modifier and calculating deformed mesh
up to the first modifier (index=0).

source/blender/blenkernel/intern/DerivedMesh.c

index 2db48e1fb13ee37ec9e8c8607e9f9acab7a4a5f5..2113b184f01c4714ca1331797347fde7aaeb1a1a 100644 (file)
@@ -981,6 +981,7 @@ static void mesh_calc_modifiers(struct Depsgraph *depsgraph,
 
       /* grab modifiers until index i */
       if ((index != -1) && (BLI_findindex(&ob->modifiers, md) >= index)) {
+        md = NULL;
         break;
       }
     }