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.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
else {
|
||||
*lvl = 1;
|
||||
tmp_mmd.simple = true;
|
||||
}
|
||||
|
||||
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);
|
||||
if (mmd->lvl == 0) {
|
||||
dm = CDDM_copy(cddm);
|
||||
}
|
||||
else {
|
||||
tmp_mmd.lvl = mmd->lvl;
|
||||
tmp_mmd.sculptlvl = mmd->lvl;
|
||||
dm = multires_make_derived_from_derived(cddm, &tmp_mmd, scene, ob, 0);
|
||||
}
|
||||
|
||||
cddm->release(cddm);
|
||||
|
||||
*lvl = mmd->lvl;
|
||||
|
||||
return dm;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user