diff --git a/source/blender/blenkernel/intern/light_linking.cc b/source/blender/blenkernel/intern/light_linking.cc index 81838b91cde..af38b1eb8c8 100644 --- a/source/blender/blenkernel/intern/light_linking.cc +++ b/source/blender/blenkernel/intern/light_linking.cc @@ -433,6 +433,9 @@ bool BKE_light_linking_unlink_id_from_collection(Main *bmain, } DEG_id_tag_update(&collection->id, ID_RECALC_HIERARCHY); + if (id_type == ID_OB) { + DEG_id_tag_update(&collection->id, ID_RECALC_SYNC_TO_EVAL); + } DEG_relations_tag_update(bmain); diff --git a/source/blender/blenkernel/intern/rigidbody.cc b/source/blender/blenkernel/intern/rigidbody.cc index 52114187a1b..01c8f8b94df 100644 --- a/source/blender/blenkernel/intern/rigidbody.cc +++ b/source/blender/blenkernel/intern/rigidbody.cc @@ -1640,7 +1640,10 @@ void BKE_rigidbody_remove_object(Main *bmain, Scene *scene, Object *ob, const bo * when we remove them from RB simulation. */ BKE_collection_object_add(bmain, scene->master_collection, ob); } - BKE_collection_object_remove(bmain, rbw->group, ob, free_us); + if (rbw->group) { + BKE_collection_object_remove(bmain, rbw->group, ob, free_us); + DEG_id_tag_update(&rbw->group->id, ID_RECALC_SYNC_TO_EVAL); + } /* flag cache as outdated */ BKE_rigidbody_cache_reset(rbw); diff --git a/source/blender/editors/space_outliner/outliner_tools.cc b/source/blender/editors/space_outliner/outliner_tools.cc index 3c761bd550b..ac7c0c9ad4c 100644 --- a/source/blender/editors/space_outliner/outliner_tools.cc +++ b/source/blender/editors/space_outliner/outliner_tools.cc @@ -471,6 +471,7 @@ static void unlink_object_fn(bContext *C, if (BKE_collection_has_object(collection, ob)) { BKE_collection_object_remove(bmain, collection, ob, true); DEG_id_tag_update(&collection->id, ID_RECALC_HIERARCHY); + DEG_id_tag_update(&collection->id, ID_RECALC_SYNC_TO_EVAL); } } FOREACH_SCENE_COLLECTION_END;