Fix T37003, Fix T37859: smoke modifier taking deforming modifiers into account
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 19 Dec 2013 17:25:14 +0000 (18:25 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 19 Dec 2013 17:25:14 +0000 (18:25 +0100)
in some cases.

The smoke modifier now ignores the modifier evaluation for generated texture
coordinates, which would previously cause the undeformed mesh to be cached for
flow objects. Dynamic paint has a similar exception, and other physics systems
avoid it by not being a constructive modifier.

source/blender/modifiers/intern/MOD_smoke.c

index 3e107b7090c9c08651954284a43013fe0ca6ac5d..0fff0b3c67bda53103b9ee46ce69260053847318 100644 (file)
@@ -101,10 +101,13 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
 
 static DerivedMesh *applyModifier(ModifierData *md, Object *ob, 
                                   DerivedMesh *dm,
-                                  ModifierApplyFlag UNUSED(flag))
+                                  ModifierApplyFlag flag)
 {
        SmokeModifierData *smd = (SmokeModifierData *) md;
 
+       if(flag & MOD_APPLY_ORCO)
+               return dm;
+
        return smokeModifier_do(smd, md->scene, ob, dm);
 }