diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-05-17 16:43:42 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-05-17 20:41:11 +0300 |
commit | e48cdf3d0d87cd393412007c33ba48b10a802426 (patch) | |
tree | 45c7d987ce3ee0d1e8faa9570f33b0adc20162a9 /intern | |
parent | 88e884bfc65efa174f720501ac97537c17be5863 (diff) |
Fix T88216: Cycles persistent data fails with animated object transform in instance
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/blender/blender_object.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 3d635800988..dcf6e3cc949 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -261,10 +261,8 @@ Object *BlenderSync::sync_object(BL::Depsgraph &b_depsgraph, } /* test if we need to sync */ - bool object_updated = false; - - if (object_map.add_or_update(&object, b_ob, b_parent, key)) - object_updated = true; + bool object_updated = object_map.add_or_update(&object, b_ob, b_parent, key) || + (tfm != object->get_tfm()); /* mesh sync */ /* b_ob is owned by the iterator and will go out of scope at the end of the block. @@ -313,8 +311,7 @@ Object *BlenderSync::sync_object(BL::Depsgraph &b_depsgraph, * transform comparison should not be needed, but duplis don't work perfect * in the depsgraph and may not signal changes, so this is a workaround */ if (object->is_modified() || object_updated || - (object->get_geometry() && object->get_geometry()->is_modified()) || - tfm != object->get_tfm()) { + (object->get_geometry() && object->get_geometry()->is_modified())) { object->name = b_ob.name().c_str(); object->set_pass_id(b_ob.pass_index()); object->set_color(get_float3(b_ob.color())); |