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
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
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.
-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;
}