[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32766] trunk/blender/source/blender: Fix for items 3 and 8 of [#24443] Trying to bake a smoke simulation crashes blender, and other smoke bugs.

Janne Karhu jhkarh at gmail.com
Sat Oct 30 10:51:51 CEST 2010


Revision: 32766
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32766
Author:   jhk
Date:     2010-10-30 10:51:50 +0200 (Sat, 30 Oct 2010)

Log Message:
-----------
Fix for items 3 and 8 of [#24443] Trying to bake a smoke simulation crashes blender, and other smoke bugs.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/smoke.c
    trunk/blender/source/blender/makesrna/intern/rna_smoke.c

Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c	2010-10-30 02:59:42 UTC (rev 32765)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c	2010-10-30 08:51:50 UTC (rev 32766)
@@ -629,9 +629,6 @@
 				smd->domain->fluid = NULL;
 			}
 
-			smd->domain->point_cache[0]->flag |= PTCACHE_OUTDATED;
-			smd->domain->point_cache[1]->flag |= PTCACHE_OUTDATED;
-
 			smokeModifier_reset_turbulence(smd);
 
 			smd->time = -1;
@@ -1412,6 +1409,10 @@
 		/* if on second frame, write cache for first frame */
 		/* this needs to be done for smoke too so that pointcache works properly */
 		if((int)smd->time == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact==0)) {
+			// create shadows straight after domain initialization so we get nice shadows for startframe, too
+			if(get_lamp(scene, light))
+				smoke_calc_transparency(sds->shadow, smoke_get_density(sds->fluid), sds->p0, sds->p1, sds->res, sds->dx, light, calc_voxel_transp, -7.0*sds->dx);
+
 			BKE_ptcache_write_cache(&pid, startframe);
 			if(sds->wt)
 				BKE_ptcache_write_cache(&pid_wt, startframe);
@@ -1443,7 +1444,7 @@
 			}
 		}
 
-		// create shadows before writing cache so we get nice shadows for startframe, too
+		// create shadows before writing cache so they get stored
 		if(get_lamp(scene, light))
 			smoke_calc_transparency(sds->shadow, smoke_get_density(sds->fluid), sds->p0, sds->p1, sds->res, sds->dx, light, calc_voxel_transp, -7.0*sds->dx);
 	

Modified: trunk/blender/source/blender/makesrna/intern/rna_smoke.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_smoke.c	2010-10-30 02:59:42 UTC (rev 32765)
+++ trunk/blender/source/blender/makesrna/intern/rna_smoke.c	2010-10-30 08:51:50 UTC (rev 32766)
@@ -33,6 +33,7 @@
 #include "BKE_smoke.h"
 
 #include "DNA_modifier_types.h"
+#include "DNA_object_force.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 #include "DNA_smoke_types.h"
@@ -64,6 +65,11 @@
 
 	smokeModifier_reset(settings->smd);
 
+	if(settings->smd && settings->smd->domain) {
+		settings->point_cache[0]->flag |= PTCACHE_OUTDATED;
+		settings->point_cache[1]->flag |= PTCACHE_OUTDATED;
+	}
+
 	rna_Smoke_update(bmain, scene, ptr);
 }
 
@@ -73,6 +79,11 @@
 
 	smokeModifier_reset(settings->smd);
 
+	if(settings->smd && settings->smd->domain) {
+		settings->smd->domain->point_cache[0]->flag |= PTCACHE_OUTDATED;
+		settings->smd->domain->point_cache[1]->flag |= PTCACHE_OUTDATED;
+	}
+
 	rna_Smoke_dependency_update(bmain, scene, ptr);
 }
 





More information about the Bf-blender-cvs mailing list