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:
authorAlexander Gavrilov <angavrilov@gmail.com>2022-10-15 22:07:03 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2022-10-15 22:08:54 +0300
commitbf3c47226bc5ad2dbaf12363917c0eca417ed23b (patch)
tree928ce3c691971dacfc0fd08883656a37945d5a30
parent665b37f96e4806a0e8e077b0d8a1f7b1764cdcd1 (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.cc4
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);