diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index 4411181dbcc..8120de96362 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -80,7 +80,6 @@ static inline BL::Mesh object_to_mesh(BL::BlendData& data, } else { me.split_faces(); - me.calc_normals_split(); } } if(subdivision_type == Mesh::SUBDIVISION_NONE) { diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 5a3f7fabcb0..73fcd7615f7 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -2334,6 +2334,9 @@ static void split_faces_split_edges(Mesh *mesh, /* Split faces based on the edge angle. * Matches behavior of face splitting in render engines. + * + * NOTE: Will leave CD_NORMAL loop data layer which is + * used by render engines to set shading up. */ void BKE_mesh_split_faces(Mesh *mesh) { @@ -2377,10 +2380,6 @@ void BKE_mesh_split_faces(Mesh *mesh) /* Perform actual split of vertices and adjacent edges. */ split_faces_split_verts(mesh, num_new_verts, vert_flags); split_faces_split_edges(mesh, num_new_edges, edge_flags); - /* CD_NORMAL is expected to be temporary only, and it's invalid at - * this point anyway. - */ - CustomData_free_layers(&mesh->ldata, CD_NORMAL, mesh->totloop); MEM_freeN(vert_flags); MEM_freeN(edge_flags); #ifdef VALIDATE_MESH