Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/intern/data_transfer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/data_transfer.c b/source/blender/blenkernel/intern/data_transfer.c
index 10d79ebdf96..3e5939b4e0f 100644
--- a/source/blender/blenkernel/intern/data_transfer.c
+++ b/source/blender/blenkernel/intern/data_transfer.c
@@ -249,7 +249,7 @@ int BKE_object_data_transfer_dttype_to_srcdst_index(const int dtdata_type)
static void data_transfer_dtdata_type_preprocess(
Mesh *me_src, Mesh *me_dst,
- const int dtdata_type, const bool dirty_nors_dst)
+ const int dtdata_type, const bool dirty_nors_dst, const bool is_modifier)
{
if (dtdata_type == DT_TYPE_LNOR) {
/* Compute custom normals into regular loop normals, which will be used for the transfer. */
@@ -267,7 +267,9 @@ static void data_transfer_dtdata_type_preprocess(
const bool use_split_nors_dst = (me_dst->flag & ME_AUTOSMOOTH) != 0;
const float split_angle_dst = me_dst->smoothresh;
- BKE_mesh_calc_normals_split(me_src);
+ if (!is_modifier) {
+ BKE_mesh_calc_normals_split(me_src);
+ }
float (*poly_nors_dst)[3];
float (*loop_nors_dst)[3];
@@ -1145,7 +1147,7 @@ bool BKE_object_data_transfer_ex(
continue;
}
- data_transfer_dtdata_type_preprocess(me_src, me_dst, dtdata_type, dirty_nors_dst);
+ data_transfer_dtdata_type_preprocess(me_src, me_dst, dtdata_type, dirty_nors_dst, is_modifier);
cddata_type = BKE_object_data_transfer_dttype_to_cdtype(dtdata_type);