[Bf-blender-cvs] [1fc5dc3bf38] master: Sculpt: fix T102664: Broken multires solid shading

Joseph Eagar noreply at git.blender.org
Mon Nov 28 22:12:01 CET 2022


Commit: 1fc5dc3bf3827e0bec2fe70d557280497730dc5a
Author: Joseph Eagar
Date:   Mon Nov 28 12:35:20 2022 -0800
Branches: master
https://developer.blender.org/rB1fc5dc3bf3827e0bec2fe70d557280497730dc5a

Sculpt: fix T102664: Broken multires solid shading

Calculate quad normal directly instead of averaging
the vertex normals.

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

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 39d493003c2..cac3e3339fc 100644
--- a/source/blender/draw/intern/draw_pbvh.cc
+++ b/source/blender/draw/intern/draw_pbvh.cc
@@ -375,12 +375,13 @@ struct PBVHBatches {
             no = CCG_elem_no(&args->ccg_key, elems[0]);
           }
           else {
-            for (int j = 0; j < 4; j++) {
-              no += CCG_elem_no(&args->ccg_key, elems[j]);
-            }
+            normal_quad_v3(no,
+                           CCG_elem_co(&args->ccg_key, elems[3]),
+                           CCG_elem_co(&args->ccg_key, elems[2]),
+                           CCG_elem_co(&args->ccg_key, elems[1]),
+                           CCG_elem_co(&args->ccg_key, elems[0]));
           }
 
-          normalize_v3(no);
           short sno[3];
 
           normal_float_to_short_v3(sno, no);



More information about the Bf-blender-cvs mailing list