Commit: c0b8d071a75403c9dcb020420db074e7bb17e887
Author: Clément Foucault
Date:   Fri May 10 14:46:01 2019 +0200
Branches: master
https://developer.blender.org/rBc0b8d071a75403c9dcb020420db074e7bb17e887

Fix T64284 Mirrored Instances have flipped normals/face orientation

It was a missing invert matrix update and also setting the OB_NEG_SCALE.

This defeats the purpose of not computing it in the draw manager but this
is more local and is have not a dramatic impact on performance.

===================================================================

M       source/blender/depsgraph/intern/depsgraph_query_iter.cc

===================================================================

diff --git a/source/blender/depsgraph/intern/depsgraph_query_iter.cc 
b/source/blender/depsgraph/intern/depsgraph_query_iter.cc
index a9fe7c6d5e7..4bc2ab557ec 100644
--- a/source/blender/depsgraph/intern/depsgraph_query_iter.cc
+++ b/source/blender/depsgraph/intern/depsgraph_query_iter.cc
@@ -158,7 +158,13 @@ bool deg_objects_dupli_iterator_next(BLI_Iterator *iter)
       continue;
     }
 
+    /* This could be avoided by refactoring make_dupli() in order to track all 
negative scaling
+     * recursively. */
+    bool is_neg_scale = is_negative_m4(dob->mat);
+    SET_FLAG_FROM_TEST(data->temp_dupli_object.transflag, is_neg_scale, 
OB_NEG_SCALE);
+
     copy_m4_m4(data->temp_dupli_object.obmat, dob->mat);
+    invert_m4_m4(data->temp_dupli_object.imat, data->temp_dupli_object.obmat);
     iter->current = &data->temp_dupli_object;
     
BLI_assert(DEG::deg_validate_copy_on_write_datablock(&data->temp_dupli_object.id));
     return true;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to