From e7811ce0c41652525545989bb1dfce1c8ab2b46b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 30 Oct 2018 17:04:06 +0100 Subject: [PATCH] Fix T57517: multires displacement baking relative to smooth base mesh not working. When baking relative to multires level 0, it would apply one level of simple subdivision still, which gave artifacts. --- source/blender/editors/object/object_bake.c | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 8ad0d09a9fb..5a650d9dc05 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -230,21 +230,21 @@ static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *l MultiresModifierData tmp_mmd = *mmd; DerivedMesh *cddm = CDDM_from_mesh(me); - if (mmd->lvl > 0) { - *lvl = mmd->lvl; - } - else { - *lvl = 1; - tmp_mmd.simple = true; - } - DM_set_only_copy(cddm, CD_MASK_BAREMESH); - tmp_mmd.lvl = *lvl; - tmp_mmd.sculptlvl = *lvl; - dm = multires_make_derived_from_derived(cddm, &tmp_mmd, scene, ob, 0); + if (mmd->lvl == 0) { + dm = CDDM_copy(cddm); + } + else { + tmp_mmd.lvl = mmd->lvl; + tmp_mmd.sculptlvl = mmd->lvl; + dm = multires_make_derived_from_derived(cddm, &tmp_mmd, scene, ob, 0); + } + cddm->release(cddm); + *lvl = mmd->lvl; + return dm; }