diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-03-20 12:15:34 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-03-20 12:15:59 +0300 |
commit | b8574c7e56211175a1ca990f904ff6b825686844 (patch) | |
tree | 9eb281cd5132f86d27be4f9ab82c30e10cefdec6 /source/blender/render | |
parent | 86cc29d0cf3be547cd93ac0daec420d57dc687f7 (diff) |
Fix T74885: Stamped lens metadata is wrong when camera lens is animated
The Lens metadata stamped on rendered images was wrong when the camera lens
is animated. This was caused by the render pipeline passing the original
camera to the metadata system, and not the evaluated camera.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index ccf1d4031cd..14a9ebcff5d 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1553,8 +1553,10 @@ static void renderresult_stampinfo(Render *re) for (rv = re->result->views.first; rv; rv = rv->next, nr++) { RE_SetActiveRenderView(re, rv->name); RE_AcquireResultImage(re, &rres, nr); + + Object *ob_camera_eval = DEG_get_evaluated_object(re->pipeline_depsgraph, RE_GetCamera(re)); BKE_image_stamp_buf(re->scene, - RE_GetCamera(re), + ob_camera_eval, (re->r.stamp & R_STAMP_STRIPMETA) ? rres.stamp_data : NULL, (unsigned char *)rres.rect32, rres.rectf, @@ -1696,7 +1698,6 @@ static void do_render_seq(Render *re) /* main loop: doing sequence + 3d render + compositing */ static void do_render_all_options(Render *re) { - Object *camera; bool render_seq = false; re->current_scene_update(re->suh, re->scene); @@ -1732,10 +1733,10 @@ static void do_render_all_options(Render *re) /* save render result stamp if needed */ if (re->result != NULL) { - camera = RE_GetCamera(re); /* sequence rendering should have taken care of that already */ if (!(render_seq && (re->r.stamp & R_STAMP_STRIPMETA))) { - BKE_render_result_stamp_info(re->scene, camera, re->result, false); + Object *ob_camera_eval = DEG_get_evaluated_object(re->pipeline_depsgraph, RE_GetCamera(re)); + BKE_render_result_stamp_info(re->scene, ob_camera_eval, re->result, false); } /* stamp image info here */ |