[Bf-blender-cvs] [e7811ce0c41] blender2.8: Fix T57517: multires displacement baking relative to smooth base mesh not working.

Brecht Van Lommel noreply at git.blender.org
Tue Oct 30 17:16:27 CET 2018


Commit: e7811ce0c41652525545989bb1dfce1c8ab2b46b
Author: Brecht Van Lommel
Date:   Tue Oct 30 17:04:06 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBe7811ce0c41652525545989bb1dfce1c8ab2b46b

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.

===================================================================

M	source/blender/editors/object/object_bake.c

===================================================================

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



More information about the Bf-blender-cvs mailing list