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 /source/blender/editors/object/object_bake.c | |
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.
Diffstat (limited to 'source/blender/editors/object/object_bake.c')
-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; } |