== Multires ==

Fixed bug #5799, Multires mesh modifications get reset by rendering

This bug can cause some nasty data loss (was introduces with my commit for using orco with multires.) Fixed by making sure to do multires_update_levels before applying modifiers.
This commit is contained in:
Nicholas Bishop
2007-01-24 01:34:05 +00:00
parent 20940c562d
commit 28e049cb3e
3 changed files with 5 additions and 0 deletions

View File

@@ -202,6 +202,7 @@ struct MultiresLevel;
struct MultiresLevel *multires_level_n(struct Multires *mr, int n);
void multires_free(struct Multires *mr);
void multires_set_level(void *ob, void *me_v);
void multires_update_levels(struct Mesh *me);
void multires_calc_level_maps(struct MultiresLevel *lvl);
struct Multires *multires_copy(struct Multires *orig);
/* sculptmode.c */

View File

@@ -295,6 +295,7 @@ void post_server_add(void) {}
struct MultiresLevel *multires_level_n(struct Multires *mr, int n) {return NULL;}
void multires_free(struct Multires *mr) {}
void multires_set_level(void *ob, void *me_v) {}
void multires_update_levels(struct Mesh *me) {}
void multires_calc_level_maps(struct MultiresLevel *lvl) {}
struct Multires *multires_copy(struct Multires *orig) {return NULL;}
void sculptmode_init(struct Scene *sce) {}

View File

@@ -2221,6 +2221,9 @@ float *multires_render_pin(Object *ob, Mesh *me, int *orig_lvl)
if(me->mr) {
MultiresLevel *lvl= NULL;
int i;
/* Make sure all mesh edits are properly stored in the multires data*/
multires_update_levels(me);
/* Copy the highest level of multires verts */
*orig_lvl= me->mr->current;