diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-10-09 20:49:13 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-10-09 20:49:13 +0400 |
commit | c1541a940d8bb0d0a8b063165ccf3e90f57fbc7a (patch) | |
tree | 6d10ffc5a66b00efe2ca37966e23ea5fca7b79c2 | |
parent | b754efcca572749c0aad2c94b9ca7a015bbc06b8 (diff) |
Fix #36991, After rendering with Sampled Motion Blur, the moving objects place is wrong.
With mblur the render function was setting scene frame for each blur sample and calling DAG update, but not after the last sample is finished, leaving the scene in the wrong frame.
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 6118d479cab..fa05f8dd18d 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1309,6 +1309,10 @@ static void do_render_blur_3d(Render *re) re->mblur_offs = 0.0f; re->i.curblur = 0; /* stats */ + /* make sure motion blur changes get reset to current frame */ + if ((re->r.scemode & (R_NO_FRAME_UPDATE|R_BUTS_PREVIEW|R_VIEWPORT_PREVIEW))==0) + BKE_scene_update_for_newframe(re->main, re->scene, re->lay); + /* weak... the display callback wants an active renderlayer pointer... */ re->result->renlay = render_get_active_layer(re, re->result); re->display_draw(re->ddh, re->result, NULL); |