Fix [#35110]: Dynamic Paint does not paint accurately in baked "Image Sequence" on Armature-Posed-Mesh

Dynamic Paint was also being calculated during "orco" mesh generation, causing image sequence baking to use orco derived mesh instead. This likely affected vertex type surfaces too in some cases.
This commit is contained in:
Miika Hamalainen 2013-04-29 15:02:54 +00:00
parent 5c5ecc3465
commit 511e3466da
2 changed files with 7 additions and 3 deletions

View File

@ -111,7 +111,7 @@ typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierDa
typedef enum ModifierApplyFlag {
MOD_APPLY_RENDER = 1 << 0, /* Render time. */
MOD_APPLY_USECACHE = 1 << 1, /* Last modifier in stack. */
MOD_APPLY_USECACHE = 1 << 1, /* Final result. Is not set for temporary calculations like orco dms. */
} ModifierApplyFlag;

View File

@ -105,11 +105,15 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
DerivedMesh *dm,
ModifierApplyFlag UNUSED(flag))
ModifierApplyFlag flag)
{
DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md;
return dynamicPaint_Modifier_do(pmd, md->scene, ob, dm);
/* dont apply dynamic paint on orco dm stack */
if (flag & MOD_APPLY_USECACHE) {
return dynamicPaint_Modifier_do(pmd, md->scene, ob, dm);
}
return dm;
}
static void updateDepgraph(ModifierData *md, DagForest *forest,