Total displacement levels should be set in multires_topology_changed
This commit is contained in:
@@ -80,7 +80,7 @@ int multires_mdisp_corners(struct MDisps *s);
|
||||
void multires_mdisp_smooth_bounds(struct MDisps *disps);
|
||||
|
||||
/* update multires data after topology changing */
|
||||
void multires_topology_changed(struct Object *ob);
|
||||
void multires_topology_changed(struct Scene *scene, struct Object *ob);
|
||||
|
||||
/**** interpolation stuff ****/
|
||||
void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v);
|
||||
|
||||
@@ -1720,11 +1720,15 @@ void multiresModifier_prepare_join(Scene *scene, Object *ob, Object *to_ob)
|
||||
}
|
||||
|
||||
/* update multires data after topology changing */
|
||||
void multires_topology_changed(Object *ob)
|
||||
void multires_topology_changed(Scene *scene, Object *ob)
|
||||
{
|
||||
Mesh *me= (Mesh*)ob->data;
|
||||
MDisps *mdisp= NULL, *cur= NULL;
|
||||
int i, grid= 0, corners;
|
||||
MultiresModifierData *mmd= get_multires_modifier(scene, ob);
|
||||
|
||||
if(mmd)
|
||||
multires_set_tot_mdisps(me, mmd->totlvl);
|
||||
|
||||
CustomData_external_read(&me->fdata, &me->id, CD_MASK_MDISPS, me->totface);
|
||||
mdisp= CustomData_get_layer(&me->fdata, CD_MDISPS);
|
||||
|
||||
@@ -1311,7 +1311,7 @@ void load_editMesh(Scene *scene, Object *obedit)
|
||||
mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
|
||||
|
||||
/* topology could be changed, ensure mdisps are ok */
|
||||
multires_topology_changed(obedit);
|
||||
multires_topology_changed(scene, obedit);
|
||||
}
|
||||
|
||||
void remake_editMesh(Scene *scene, Object *ob)
|
||||
|
||||
Reference in New Issue
Block a user