Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@blender.org>2020-03-20 12:15:34 +0300
committerSybren A. Stüvel <sybren@blender.org>2020-03-20 12:15:59 +0300
commitb8574c7e56211175a1ca990f904ff6b825686844 (patch)
tree9eb281cd5132f86d27be4f9ab82c30e10cefdec6 /source/blender/render
parent86cc29d0cf3be547cd93ac0daec420d57dc687f7 (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.c9
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 */