[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56384] trunk/blender/source/blender: Fix [#35110]: Dynamic Paint does not paint accurately in baked "Image Sequence" on Armature-Posed-Mesh

Miika Hamalainen blender at miikah.org
Mon Apr 29 17:02:54 CEST 2013


Revision: 56384
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56384
Author:   miikah
Date:     2013-04-29 15:02:54 +0000 (Mon, 29 Apr 2013)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_modifier.h
    trunk/blender/source/blender/modifiers/intern/MOD_dynamicpaint.c

Modified: trunk/blender/source/blender/blenkernel/BKE_modifier.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_modifier.h	2013-04-29 14:09:19 UTC (rev 56383)
+++ trunk/blender/source/blender/blenkernel/BKE_modifier.h	2013-04-29 15:02:54 UTC (rev 56384)
@@ -111,7 +111,7 @@
 
 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;
 
 

Modified: trunk/blender/source/blender/modifiers/intern/MOD_dynamicpaint.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_dynamicpaint.c	2013-04-29 14:09:19 UTC (rev 56383)
+++ trunk/blender/source/blender/modifiers/intern/MOD_dynamicpaint.c	2013-04-29 15:02:54 UTC (rev 56384)
@@ -105,11 +105,15 @@
 
 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,




More information about the Bf-blender-cvs mailing list