Multires: Fix wrong creation of multires mesh

Should use evaluated object to query deformed mesh from.
This commit is contained in:
Sergey Sharybin 2018-08-16 17:00:24 +02:00
parent 77e1942e0e
commit a9b82d5d79
1 changed files with 5 additions and 2 deletions

View File

@ -64,6 +64,8 @@
#include "CCGSubSurf.h"
#include "DEG_depsgraph_query.h"
#include <math.h>
#include <string.h>
@ -300,10 +302,11 @@ Mesh *get_multires_mesh(
MultiresModifierData *mmd,
Object *ob)
{
Mesh *deformed_mesh = mesh_get_eval_deform(depsgraph, scene, ob, CD_MASK_BAREMESH);
Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
Mesh *deformed_mesh = mesh_get_eval_deform(depsgraph, scene, ob_eval, CD_MASK_BAREMESH);
ModifierEvalContext modifier_ctx = {
.depsgraph = depsgraph,
.object = ob,
.object = ob_eval,
.flag = MOD_APPLY_USECACHE | MOD_APPLY_IGNORE_SIMPLIFY};
Mesh *result = modifier_applyModifier(&mmd->modifier, &modifier_ctx, deformed_mesh);
if (result == deformed_mesh) {