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:
authorJoseph Eagar <joeedh@gmail.com>2022-10-01 01:19:10 +0300
committerJoseph Eagar <joeedh@gmail.com>2022-10-01 01:19:10 +0300
commit5b0485fd7711494ecc927e97adbeb2655d940af6 (patch)
tree179a1c3da56ad707bd189bed2e366eadd8b0a38b /source/blender/blenkernel/intern
parent1eba76d8eda60a0110460e6c880ae0875dd7fd5f (diff)
Sculpt: Upload white for color attributes in multires in sculpt
Even if multires in sculpt mode doesn't yet support color attributes, we should at least upload white color to avoid making everything black. Also fixed a bug where multires PBVHs didn't have access to their CustomData attribute layout, which PBVH draw needs.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/paint.cc3
-rw-r--r--source/blender/blenkernel/intern/pbvh.c11
2 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc
index e0a27a3d03e..f7f5f7e411a 100644
--- a/source/blender/blenkernel/intern/paint.cc
+++ b/source/blender/blenkernel/intern/paint.cc
@@ -2240,7 +2240,8 @@ static PBVH *build_pbvh_from_ccg(Object *ob, SubdivCCG *subdiv_ccg, bool respect
&key,
(void **)subdiv_ccg->grid_faces,
subdiv_ccg->grid_flag_mats,
- subdiv_ccg->grid_hidden);
+ subdiv_ccg->grid_hidden,
+ base_mesh);
pbvh_show_mask_set(pbvh, ob->sculpt->show_mask);
pbvh_show_face_sets_set(pbvh, ob->sculpt->show_face_sets);
return pbvh;
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index 5061fecbccb..a7595952cac 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -663,7 +663,8 @@ void BKE_pbvh_build_grids(PBVH *pbvh,
CCGKey *key,
void **gridfaces,
DMFlagMat *flagmats,
- BLI_bitmap **grid_hidden)
+ BLI_bitmap **grid_hidden,
+ Mesh *me)
{
const int gridsize = key->grid_size;
@@ -676,6 +677,14 @@ void BKE_pbvh_build_grids(PBVH *pbvh,
pbvh->grid_hidden = grid_hidden;
pbvh->leaf_limit = max_ii(LEAF_LIMIT / (gridsize * gridsize), 1);
+ /* We need the base mesh attribute layout for PBVH draw. */
+ pbvh->vdata = &me->vdata;
+ pbvh->ldata = &me->ldata;
+ pbvh->pdata = &me->pdata;
+
+ /* We also need the base mesh for PBVH draw. */
+ pbvh->mesh = me;
+
BB cb;
BB_reset(&cb);