forked from bartvdbraak/blender
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:
parent
5c5ecc3465
commit
511e3466da
@ -111,7 +111,7 @@ typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierDa
|
|||||||
|
|
||||||
typedef enum ModifierApplyFlag {
|
typedef enum ModifierApplyFlag {
|
||||||
MOD_APPLY_RENDER = 1 << 0, /* Render time. */
|
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;
|
} ModifierApplyFlag;
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,11 +105,15 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
|||||||
|
|
||||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||||
DerivedMesh *dm,
|
DerivedMesh *dm,
|
||||||
ModifierApplyFlag UNUSED(flag))
|
ModifierApplyFlag flag)
|
||||||
{
|
{
|
||||||
DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md;
|
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,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
Loading…
Reference in New Issue
Block a user