diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-10-30 19:04:06 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-10-30 19:15:32 +0300 |
commit | e7811ce0c41652525545989bb1dfce1c8ab2b46b (patch) | |
tree | 1ee7301afb71b9912807468b121d9bc2e69ba880 | |
parent | 87f4c830180d0590c62eece483f2231e01dea4b2 (diff) |
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.
-rw-r--r-- | source/blender/editors/object/object_bake.c | 18 |
1 files changed, 9 insertions, 9 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; + DM_set_only_copy(cddm, CD_MASK_BAREMESH); + + if (mmd->lvl == 0) { + dm = CDDM_copy(cddm); } else { - *lvl = 1; - tmp_mmd.simple = true; + tmp_mmd.lvl = mmd->lvl; + tmp_mmd.sculptlvl = mmd->lvl; + dm = multires_make_derived_from_derived(cddm, &tmp_mmd, scene, ob, 0); } - 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); cddm->release(cddm); + *lvl = mmd->lvl; + return dm; } |