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) {
                                /*


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to