From a81cc5cbcb6c9e9ef4bee610ac1d325d33884e98 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Mon, 21 Feb 2022 11:40:59 -0500 Subject: Fix: Avoid potential use of dirty normals Instead of accessing the `CD_NORMAL` layer directly, use the proper API for accessing mesh normals. Even if the layer exists, the values might be incorrect due to a deformation. Related to ef0e21f0ae71d, 969c4a45ce09100e, and T95839. --- source/blender/render/intern/bake.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender/render/intern/bake.c') diff --git a/source/blender/render/intern/bake.c b/source/blender/render/intern/bake.c index 883e026472b..b11d9629e03 100644 --- a/source/blender/render/intern/bake.c +++ b/source/blender/render/intern/bake.c @@ -482,7 +482,9 @@ static TriTessFace *mesh_calc_tri_tessface(Mesh *me, bool tangent, Mesh *me_eval looptri = MEM_mallocN(sizeof(*looptri) * tottri, __func__); triangles = MEM_callocN(sizeof(TriTessFace) * tottri, __func__); - const float(*precomputed_normals)[3] = CustomData_get_layer(&me->pdata, CD_NORMAL); + const float(*precomputed_normals)[3] = BKE_mesh_poly_normals_are_dirty(me) ? + NULL : + BKE_mesh_poly_normals_ensure(me); const bool calculate_normal = precomputed_normals ? false : true; if (precomputed_normals != NULL) { -- cgit v1.2.3