diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c index d4af1768acc..f1724553ad7 100644 --- a/source/blender/blenkernel/intern/editderivedmesh.c +++ b/source/blender/blenkernel/intern/editderivedmesh.c @@ -180,6 +180,7 @@ static void emDM_calcLoopNormals(DerivedMesh *dm, const float split_angle) /* calculate loop normals from poly and vertex normals */ emDM_ensureVertNormals(bmdm); + emDM_ensurePolyNormals(bmdm); dm->dirty &= ~DM_DIRTY_NORMALS; vertexCos = bmdm->vertexCos; diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c index e7233535760..70660bba050 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.c +++ b/source/blender/bmesh/intern/bmesh_mesh.c @@ -473,7 +473,7 @@ static void bm_mesh_edges_sharp_tag(BMesh *bm, const float (*vnos)[3], const flo if (BM_edge_loop_pair(e, &l_a, &l_b)) { bool is_angle_smooth = true; if (check_angle) { - const float *no_a = fnos ? fnos[BM_elem_index_get(l_b->f)] : l_a->f->no; + const float *no_a = fnos ? fnos[BM_elem_index_get(l_a->f)] : l_a->f->no; const float *no_b = fnos ? fnos[BM_elem_index_get(l_b->f)] : l_b->f->no; is_angle_smooth = (dot_v3v3(no_a, no_b) >= split_angle); }