Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-10-30 19:04:06 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-10-30 19:15:32 +0300
commite7811ce0c41652525545989bb1dfce1c8ab2b46b (patch)
tree1ee7301afb71b9912807468b121d9bc2e69ba880 /source
parent87f4c830180d0590c62eece483f2231e01dea4b2 (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')
-rw-r--r--source/blender/editors/object/object_bake.c18
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;
}