[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33016] trunk/blender/source/blender/ blenkernel/intern/smoke.c: Smoke now uses the start and end of cached data properly when outside the cached frame range .

Janne Karhu jhkarh at gmail.com
Thu Nov 11 19:00:32 CET 2010


Revision: 33016
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33016
Author:   jhk
Date:     2010-11-11 18:59:52 +0100 (Thu, 11 Nov 2010)

Log Message:
-----------
Smoke now uses the start and end of cached data properly when outside the cached frame range.
* Patch by MiikaH.

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

Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c	2010-11-11 17:03:09 UTC (rev 33015)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c	2010-11-11 17:59:52 UTC (rev 33016)
@@ -1353,13 +1353,17 @@
 			}
 		}
 
-		if(framenr < startframe)
+		if(!smd->domain->fluid && (framenr != startframe) && (cache->flag & PTCACHE_BAKED)==0)
 			return;
 
+		if(framenr < startframe)
+			framenr = startframe;
+
 		if(framenr > endframe)
-			return;
+			framenr = endframe;
 
-		if(!smd->domain->fluid && (framenr != startframe) && (cache->flag & PTCACHE_BAKED)==0)
+		/* If already viewing a pre/after frame, no need to reload */
+		if ((smd->time == framenr) && (framenr != scene->r.cfra))
 			return;
 
 		// printf("startframe: %d, framenr: %d\n", startframe, framenr);
@@ -1402,6 +1406,10 @@
 		else if(framenr != (int)smd->time+1)
 			return;
 
+		/* don't simulate if viewing start frame, but scene frame is not real start frame */
+		if (framenr != scene->r.cfra)
+			return;
+
 		tstart();
 
 		smoke_calc_domain(scene, ob, smd);





More information about the Bf-blender-cvs mailing list