[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21363] branches/blender2.5/blender/source /blender: Rendering animations with particle trails cached.

Janne Karhu jhkarh at utu.fi
Sat Jul 4 14:09:21 CEST 2009


Revision: 21363
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21363
Author:   jhk
Date:     2009-07-04 14:09:21 +0200 (Sat, 04 Jul 2009)

Log Message:
-----------
Rendering animations with particle trails cached.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c
    branches/blender2.5/blender/source/blender/editors/physics/ed_pointcache.c
    branches/blender2.5/blender/source/blender/render/intern/source/pipeline.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h	2009-07-04 08:50:41 UTC (rev 21362)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h	2009-07-04 12:09:21 UTC (rev 21363)
@@ -114,6 +114,7 @@
 	struct Scene *scene;
 	int bake;
 	int render;
+	int anim_init;
 	int quick_step;
 	struct PTCacheID *pid;
 	int (*break_test)(void *data);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c	2009-07-04 08:50:41 UTC (rev 21362)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c	2009-07-04 12:09:21 UTC (rev 21363)
@@ -1154,6 +1154,7 @@
 	baker.progressbar=NULL;
 	baker.progresscontext=NULL;
 	baker.render=0;
+	baker.anim_init = 0;
 	baker.scene=scene;
 
 	if(count_quick_cache(scene, &baker.quick_step))
@@ -1171,7 +1172,7 @@
 	float frameleno = scene->r.framelen;
 	int cfrao = CFRA;
 	int startframe = MAXFRAME;
-	int endframe = CFRA;
+	int endframe = baker->anim_init ? scene->r.sfra : CFRA;
 	int bake = baker->bake;
 	int render = baker->render;
 	int step = baker->quick_step;

Modified: branches/blender2.5/blender/source/blender/editors/physics/ed_pointcache.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/physics/ed_pointcache.c	2009-07-04 08:50:41 UTC (rev 21362)
+++ branches/blender2.5/blender/source/blender/editors/physics/ed_pointcache.c	2009-07-04 12:09:21 UTC (rev 21363)
@@ -82,6 +82,7 @@
 	baker.pid = NULL;
 	baker.bake = RNA_boolean_get(op->ptr, "bake");
 	baker.render = 0;
+	baker.anim_init = 0;
 	baker.quick_step = 1;
 	baker.break_test = cache_break_test;
 	baker.break_data = NULL;
@@ -172,6 +173,7 @@
 	baker.pid = &pid;
 	baker.bake = RNA_boolean_get(op->ptr, "bake");
 	baker.render = 0;
+	baker.anim_init = 0;
 	baker.quick_step = 1;
 	baker.break_test = cache_break_test;
 	baker.break_data = NULL;
@@ -277,6 +279,7 @@
 	baker.pid = &pid;
 	baker.bake = RNA_boolean_get(op->ptr, "bake");
 	baker.render = 0;
+	baker.anim_init = 0;
 	baker.quick_step = 1;
 	baker.break_test = cache_break_test;
 	baker.break_data = NULL;

Modified: branches/blender2.5/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- branches/blender2.5/blender/source/blender/render/intern/source/pipeline.c	2009-07-04 08:50:41 UTC (rev 21362)
+++ branches/blender2.5/blender/source/blender/render/intern/source/pipeline.c	2009-07-04 12:09:21 UTC (rev 21363)
@@ -2413,7 +2413,7 @@
 	return 1;
 }
 
-static void update_physics_cache(Render *re, Scene *scene)
+static void update_physics_cache(Render *re, Scene *scene, int anim_init)
 {
 	PTCacheBaker baker;
 
@@ -2421,6 +2421,7 @@
 	baker.pid = NULL;
 	baker.bake = 0;
 	baker.render = 1;
+	baker.anim_init = 1;
 	baker.quick_step = 1;
 	baker.break_test = re->test_break;
 	baker.break_data = re->tbh;
@@ -2429,7 +2430,7 @@
 	BKE_ptcache_make_cache(&baker);
 }
 /* evaluating scene options for general Blender render */
-static int render_initialize_from_scene(Render *re, Scene *scene, int anim)
+static int render_initialize_from_scene(Render *re, Scene *scene, int anim, int anim_init)
 {
 	int winx, winy;
 	rcti disprect;
@@ -2467,7 +2468,7 @@
 	tag_scenes_for_render(re);
 
 	/* make sure dynamics are up to date */
-	update_physics_cache(re, scene);
+	update_physics_cache(re, scene, anim_init);
 	
 	if(scene->r.scemode & R_SINGLE_LAYER)
 		push_render_result(re);
@@ -2497,7 +2498,7 @@
 	
 	scene->r.cfra= frame;
 	
-	if(render_initialize_from_scene(re, scene, 0)) {
+	if(render_initialize_from_scene(re, scene, 0, 0)) {
 		do_render_all_options(re);
 	}
 	
@@ -2586,7 +2587,7 @@
 	int nfra;
 	
 	/* do not fully call for each frame, it initializes & pops output window */
-	if(!render_initialize_from_scene(re, scene, 0))
+	if(!render_initialize_from_scene(re, scene, 0, 1))
 		return;
 	
 	/* ugly global still... is to prevent renderwin events and signal subsurfs etc to make full resol */
@@ -2617,7 +2618,7 @@
 			char name[FILE_MAX];
 			
 			/* only border now, todo: camera lens. (ton) */
-			render_initialize_from_scene(re, scene, 1);
+			render_initialize_from_scene(re, scene, 1, 0);
 
 			if(nfra!=scene->r.cfra) {
 				/*





More information about the Bf-blender-cvs mailing list