diff options
author | Miika Hamalainen <blender@miikah.org> | 2013-04-29 19:02:54 +0400 |
---|---|---|
committer | Miika Hamalainen <blender@miikah.org> | 2013-04-29 19:02:54 +0400 |
commit | 511e3466da62389ac318d631ddce45a87e5f2408 (patch) | |
tree | d933f297705cb5fc6e0f1181782167b19b7ef0e9 /source | |
parent | 5c5ecc3465de40246469b667fb8c5eb813da34c7 (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_modifier.h | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_dynamicpaint.c | 8 |
2 files changed, 7 insertions, 3 deletions
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, |