diff options
author | Pablo Dobarro <pablodp606@gmail.com> | 2020-11-05 01:39:36 +0300 |
---|---|---|
committer | Pablo Dobarro <pablodp606@gmail.com> | 2020-11-06 01:40:30 +0300 |
commit | 02677ec4e0fadc9b2bec694fd14155ea16e48adf (patch) | |
tree | 11a859bbec72e8d2cdf7aed02b164ef99c30f457 /source/blender/editors/sculpt_paint/sculpt_face_set.c | |
parent | e041d0fc02b1f0f8e9bc4436accb1ced374aeadd (diff) |
Fix T81915: Draw Face Sets not working with deformed sculpt mesh
The draw face sets brush uses the poly center when used in meshes to increase
its precision when working in low poly geometry. For this to work with deformed
meshes, the deformed coordinates from the PBVH should be used instead.
Reviewed By: sergey
Maniphest Tasks: T81915
Differential Revision: https://developer.blender.org/D9424
Diffstat (limited to 'source/blender/editors/sculpt_paint/sculpt_face_set.c')
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_face_set.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/editors/sculpt_paint/sculpt_face_set.c b/source/blender/editors/sculpt_paint/sculpt_face_set.c index af6a06caf69..bfe741d2625 100644 --- a/source/blender/editors/sculpt_paint/sculpt_face_set.c +++ b/source/blender/editors/sculpt_paint/sculpt_face_set.c @@ -132,6 +132,8 @@ static void do_draw_face_sets_brush_task_cb_ex(void *__restrict userdata, ss, &test, data->brush->falloff_shape); const int thread_id = BLI_task_parallel_thread_id(tls); + MVert *mvert = SCULPT_mesh_deformed_mverts_get(ss); + BKE_pbvh_vertex_iter_begin(ss->pbvh, data->nodes[n], vd, PBVH_ITER_UNIQUE) { if (BKE_pbvh_type(ss->pbvh) == PBVH_FACES) { @@ -140,7 +142,7 @@ static void do_draw_face_sets_brush_task_cb_ex(void *__restrict userdata, const MPoly *p = &ss->mpoly[vert_map->indices[j]]; float poly_center[3]; - BKE_mesh_calc_poly_center(p, &ss->mloop[p->loopstart], ss->mvert, poly_center); + BKE_mesh_calc_poly_center(p, &ss->mloop[p->loopstart], mvert, poly_center); if (sculpt_brush_test_sq_fn(&test, poly_center)) { const float fade = bstrength * SCULPT_brush_strength_factor(ss, |