[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16509] trunk/blender/source/blender/ blenkernel: Fix for #11740 - Reactor particles do not render in animation.
Janne Karhu
jhkarh at utu.fi
Sat Sep 13 23:07:02 CEST 2008
Revision: 16509
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16509
Author: jhk
Date: 2008-09-13 23:06:22 +0200 (Sat, 13 Sep 2008)
Log Message:
-----------
Fix for #11740 - Reactor particles do not render in animation.
- Particle data was deleted when the current frame was outside the baked range. Reactor particles need this data to store birth and death times.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_particle.h
trunk/blender/source/blender/blenkernel/intern/particle_system.c
Modified: trunk/blender/source/blender/blenkernel/BKE_particle.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_particle.h 2008-09-13 19:19:51 UTC (rev 16508)
+++ trunk/blender/source/blender/blenkernel/BKE_particle.h 2008-09-13 21:06:22 UTC (rev 16509)
@@ -302,6 +302,7 @@
#define PSYS_RESET_ALL 1
#define PSYS_RESET_DEPSGRAPH 2
#define PSYS_RESET_CHILDREN 3
+#define PSYS_RESET_CACHE_MISS 4
/* ParticleEffectorCache->type */
#define PSYS_EC_EFFECTOR 1
Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c 2008-09-13 19:19:51 UTC (rev 16508)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c 2008-09-13 21:06:22 UTC (rev 16509)
@@ -150,7 +150,15 @@
BLI_freelistN(&psys->reactevents);
}
}
+ else if(mode == PSYS_RESET_CACHE_MISS) {
+ /* set all particles to be skipped */
+ ParticleData *pa = psys->particles;
+ int p=0;
+ for(; p<psys->totpart; p++, pa++)
+ pa->flag = PARS_NO_DISP;
+ }
+
/* reset children */
if(psys->child) {
MEM_freeN(psys->child);
@@ -4473,7 +4481,7 @@
if(usecache) {
/* frame clamping */
if(framenr < startframe) {
- psys_reset(psys, PSYS_RESET_DEPSGRAPH);
+ psys_reset(psys, PSYS_RESET_CACHE_MISS);
psys->cfra = cfra;
psys->recalc = 0;
return;
@@ -4553,14 +4561,14 @@
return;
}
else if(ob->id.lib || (cache->flag & PTCACHE_BAKED)) {
- psys_reset(psys, PSYS_RESET_DEPSGRAPH);
+ psys_reset(psys, PSYS_RESET_CACHE_MISS);
psys->cfra=cfra;
psys->recalc = 0;
return;
}
if(framenr != startframe && framedelta != 1) {
- psys_reset(psys, PSYS_RESET_DEPSGRAPH);
+ psys_reset(psys, PSYS_RESET_CACHE_MISS);
psys->cfra = cfra;
psys->recalc = 0;
return;
More information about the Bf-blender-cvs
mailing list