diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index cc260b8f60c..cf79aaff55c 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -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; diff --git a/source/blender/modifiers/intern/MOD_dynamicpaint.c b/source/blender/modifiers/intern/MOD_dynamicpaint.c index 80866a7c435..28c21c2a879 100644 --- a/source/blender/modifiers/intern/MOD_dynamicpaint.c +++ b/source/blender/modifiers/intern/MOD_dynamicpaint.c @@ -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,