diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2022-10-15 22:07:03 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2022-10-15 22:08:54 +0300 |
commit | bf3c47226bc5ad2dbaf12363917c0eca417ed23b (patch) | |
tree | 928ce3c691971dacfc0fd08883656a37945d5a30 | |
parent | 665b37f96e4806a0e8e077b0d8a1f7b1764cdcd1 (diff) |
Weight Paint: relax heuristic to determine when final mesh can be used.temp-angavrilov
Checking for polygon and loop data to be referenced is too fragile
re changes in geometry node implementations. Instead, compare counts
of polygons, face corners and vertices: topology changes are unlikely
to keep all three unchanged.
Ref D15501
-rw-r--r-- | source/blender/blenkernel/intern/paint.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc index 934cfb3cc46..98e026831c5 100644 --- a/source/blender/blenkernel/intern/paint.cc +++ b/source/blender/blenkernel/intern/paint.cc @@ -1785,8 +1785,8 @@ static void sculpt_update_object( /* If the fully evaluated mesh has the same topology as the deform-only version, use it. * This matters because crazyspace evaluation is very restrictive and excludes even modifiers * that simply recompute vertex weights (which can even include Geometry Nodes). */ - if (me_eval_deform->polys().data() == me_eval->polys().data() && - me_eval_deform->loops().data() == me_eval->loops().data() && + if (me_eval_deform->totpoly == me_eval->totpoly && + me_eval_deform->totloop == me_eval->totloop && me_eval_deform->totvert == me_eval->totvert) { BKE_sculptsession_free_deformMats(ss); |