Multires: Use proper subdivision level for reshape
Apparently, part of code got lost last minute prior to push.
This commit is contained in:
parent
e4284d06ad
commit
280de3df07
|
@ -385,9 +385,10 @@ static void object_update_from_subsurf_ccg(Object *object)
|
|||
if (!subdiv_ccg->dirty.coords && !subdiv_ccg->dirty.hidden) {
|
||||
return;
|
||||
}
|
||||
const int tot_level = mesh_eval->runtime.subdiv_ccg_tot_level;
|
||||
Object *object_orig = DEG_get_original_object(object);
|
||||
Mesh *mesh_orig = (Mesh *)object_orig->data;
|
||||
multiresModifier_reshapeFromCCG(6, mesh_orig, subdiv_ccg);
|
||||
multiresModifier_reshapeFromCCG(tot_level, mesh_orig, subdiv_ccg);
|
||||
/* NOTE: we need to reshape into an original mesh from main database,
|
||||
* allowing:
|
||||
*
|
||||
|
|
|
@ -84,8 +84,11 @@ struct MLoopTri_Store {
|
|||
typedef struct Mesh_Runtime {
|
||||
struct EditMeshData *edit_data;
|
||||
void *batch_cache;
|
||||
|
||||
struct SubdivCCG *subdiv_ccg;
|
||||
void *pad1;
|
||||
int subdiv_ccg_tot_level;
|
||||
int pad2;
|
||||
|
||||
int64_t cd_dirty_vert;
|
||||
int64_t cd_dirty_edge;
|
||||
|
|
|
@ -236,6 +236,7 @@ static Mesh *applyModifier_subdiv(ModifierData *md,
|
|||
if ((ctx->object->mode & OB_MODE_SCULPT) && !for_orco) {
|
||||
/* NOTE: CCG takes ownership over Subdiv. */
|
||||
result = multires_as_ccg(mmd, ctx, mesh, subdiv);
|
||||
result->runtime.subdiv_ccg_tot_level = mmd->totlvl;
|
||||
// BKE_subdiv_stats_print(&subdiv->stats);
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Reference in New Issue