[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