diff --git a/source/blender/editors/object/object_bake_api.c b/source/blender/editors/object/object_bake_api.c index 6164958bf2c..d2f04599d0e 100644 --- a/source/blender/editors/object/object_bake_api.c +++ b/source/blender/editors/object/object_bake_api.c @@ -927,7 +927,8 @@ static int bake(Render *re, } } else if (is_cage) { - BKE_object_eval_reset(ob_low_eval); + Object *ob_cage_tmp = BKE_object_copy(bmain, ob_low_eval); + ob_cage_tmp->runtime.object_as_temp_mesh = NULL; ModifierData *md = ob_low_eval->modifiers.first; while (md) { @@ -940,13 +941,13 @@ static int bake(Render *re, * the eventual edge split.*/ if (md->type == eModifierType_EdgeSplit) { - BLI_remlink(&ob_low_eval->modifiers, md); + BLI_remlink(&ob_cage_tmp->modifiers, md); modifier_free(md); } md = md_next; } - me_cage = BKE_object_to_mesh(NULL, ob_low_eval, false); + me_cage = BKE_object_to_mesh(NULL, ob_cage_tmp, false); RE_bake_pixels_populate(me_cage, pixel_array_low, num_pixels, &bake_images, uv_layer); }