diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-07-03 13:53:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-07-03 13:53:29 +0300 |
commit | b868e58d9b7cfc1338296b995ddc8c619d28763d (patch) | |
tree | 498e3b75e4a4c8535ce35d05ea85308a4ff8c50d /source/blender/blenkernel/intern/paint.c | |
parent | 6d0e172fefdc659e981e6856509db8a4e962993b (diff) |
Sculpt: Fix wrong object used for crazy space calculation
Was applying modifiers twice, when it should not have.
Is expected to solve mesh corruption when in sculpt mode.
Diffstat (limited to 'source/blender/blenkernel/intern/paint.c')
-rw-r--r-- | source/blender/blenkernel/intern/paint.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index a32bdee2b2c..4d3a0587a0b 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -68,6 +68,7 @@ #include "BKE_subsurf.h" #include "DEG_depsgraph.h" +#include "DEG_depsgraph_query.h" #include "bmesh.h" @@ -947,13 +948,14 @@ void BKE_sculpt_update_mesh_elements( if (ss->modifiers_active) { if (!ss->orig_cos) { + Object *object_orig = DEG_get_original_object(ob); int a; BKE_sculptsession_free_deformMats(ss); ss->orig_cos = (ss->kb) ? BKE_keyblock_convert_to_vertcos(ob, ss->kb) : BKE_mesh_vertexCos_get(me, NULL); - BKE_crazyspace_build_sculpt(depsgraph, scene, ob, &ss->deform_imats, &ss->deform_cos); + BKE_crazyspace_build_sculpt(depsgraph, scene, object_orig, &ss->deform_imats, &ss->deform_cos); BKE_pbvh_apply_vertCos(ss->pbvh, ss->deform_cos, me->totvert); for (a = 0; a < me->totvert; ++a) { |