diff options
author | Stefan Werner <stewreo@gmail.com> | 2017-08-12 23:04:42 +0300 |
---|---|---|
committer | Stefan Werner <stewreo@gmail.com> | 2017-08-14 21:24:30 +0300 |
commit | 86eb8980d3609e5783b1253599d2d7badbdd3930 (patch) | |
tree | 960aaf3682f245851e3e4ae3408bcdec1d02c7fe | |
parent | 595cfd2a81efef18ec368504611257a36e3de3fd (diff) |
Cycles: Fixed broken camera motion blur when motion was not set to center on frame
Reviewers: #cycles, sergey
Reviewed By: #cycles, sergey
Subscribers: sergey
Differential Revision: https://developer.blender.org/D2787
-rw-r--r-- | intern/cycles/blender/blender_camera.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index 40d6b25f2b7..b29711d30d3 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -544,7 +544,11 @@ void BlenderSync::sync_camera_motion(BL::RenderSettings& b_render, if(tfm != cam->matrix) { VLOG(1) << "Camera " << b_ob.name() << " motion detected."; - if(motion_time == -1.0f) { + if(motion_time == 0.0f) { + /* When motion blur is not centered in frame, cam->matrix gets reset. */ + cam->matrix = tfm; + } + else if(motion_time == -1.0f) { cam->motion.pre = tfm; cam->use_motion = true; } @@ -573,7 +577,10 @@ void BlenderSync::sync_camera_motion(BL::RenderSettings& b_render, float fov = 2.0f * atanf((0.5f * sensor_size) / bcam.lens / aspectratio); if(fov != cam->fov) { VLOG(1) << "Camera " << b_ob.name() << " FOV change detected."; - if(motion_time == -1.0f) { + if(motion_time == 0.0f) { + cam->fov = fov; + } + else if(motion_time == -1.0f) { cam->fov_pre = fov; cam->use_perspective_motion = true; } |