[Bf-blender-cvs] [7b0ffd69e04] fluid-mantaflow: fix for active fields (cache read)

Sebastián Barschkis noreply at git.blender.org
Thu Aug 2 13:47:45 CEST 2018


Commit: 7b0ffd69e0439c86d7c32b5417703f5c4cdac77b
Author: Sebastián Barschkis
Date:   Thu Aug 2 13:27:54 2018 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB7b0ffd69e0439c86d7c32b5417703f5c4cdac77b

fix for active fields (cache read)

new cache does not save active fields, e.g. fire. so for now, just
reload them during cache read step

===================================================================

M	source/blender/blenkernel/intern/smoke.c

===================================================================

diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 3ab0d4633d7..04225a3e2fc 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -3304,6 +3304,8 @@ static void smokeModifier_process(
 		SmokeDomainSettings *sds = smd->domain;
 		int startframe, endframe, framenr;
 		Object *guiding_parent = NULL;
+		Object **objs = NULL;
+		unsigned int numobj = 0;
 		SmokeModifierData *smd_parent = NULL;
 		bool is_first_frame;
 		framenr = scene->r.cfra;
@@ -3345,6 +3347,12 @@ static void smokeModifier_process(
 		/* Read cache. For liquids update data directly (i.e. not via python) */
 		if (!is_baking)
 		{
+			/* Cache does not keep track of active fields yet. So refresh them here */
+			objs = get_collisionobjects(scene, ob, sds->fluid_group, &numobj, eModifierType_Smoke);
+			update_flowsflags(sds, objs, numobj);
+			objs = get_collisionobjects(scene, ob, sds->coll_group, &numobj, eModifierType_Smoke);
+			update_obstacleflags(sds, objs, numobj);
+
 			if (sds->cache_flag & FLUID_CACHE_BAKED_DATA)
 			{
 				if (sds->type == MOD_SMOKE_DOMAIN_TYPE_GAS)



More information about the Bf-blender-cvs mailing list