[Bf-blender-cvs] [c207571d44e] master: Sculpt: Fix draw artifacts when drawing multires mask

Joseph Eagar noreply at git.blender.org
Sat Oct 15 07:52:05 CEST 2022


Commit: c207571d44e6af7d52a3764f6a3794e9a884a56b
Author: Joseph Eagar
Date:   Fri Oct 14 22:51:45 2022 -0700
Branches: master
https://developer.blender.org/rBc207571d44e6af7d52a3764f6a3794e9a884a56b

Sculpt: Fix draw artifacts when drawing multires mask

===================================================================

M	source/blender/draw/intern/draw_pbvh.cc

===================================================================

diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc
index 880a5a445f4..381f8b55e9f 100644
--- a/source/blender/draw/intern/draw_pbvh.cc
+++ b/source/blender/draw/intern/draw_pbvh.cc
@@ -389,12 +389,18 @@ struct PBVHBatches {
         break;
 
       case CD_PBVH_MASK_TYPE:
-        foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) {
-          float *mask = CCG_elem_mask(&args->ccg_key, elems[i]);
+        if (args->ccg_key.has_mask) {
+          foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) {
+            float *mask = CCG_elem_mask(&args->ccg_key, elems[i]);
 
-          *static_cast<uchar *>(GPU_vertbuf_raw_step(&access)) = mask ? uchar(*mask * 255.0f) :
-                                                                        255;
-        });
+            *static_cast<uchar *>(GPU_vertbuf_raw_step(&access)) = uchar(*mask * 255.0f);
+          });
+        }
+        else {
+          foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) {
+            *static_cast<uchar *>(GPU_vertbuf_raw_step(&access)) = 0;
+          });
+        }
         break;
 
       case CD_PBVH_FSET_TYPE: {



More information about the Bf-blender-cvs mailing list