From 2e1a479e290aa703b31bbc59439af63299fec82c Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Mon, 28 Nov 2022 12:35:20 -0800 Subject: [PATCH] Sculpt: fix T102664: Broken multires solid shading Calculate quad normal directly instead of averaging the vertex normals. --- source/blender/draw/intern/draw_pbvh.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index 6c504e63511..2a13072ce83 100644 --- a/source/blender/draw/intern/draw_pbvh.cc +++ b/source/blender/draw/intern/draw_pbvh.cc @@ -374,12 +374,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);