diff --git a/scripts/startup/bl_operators/clip.py b/scripts/startup/bl_operators/clip.py index 442f48c76d5..de346087afa 100644 --- a/scripts/startup/bl_operators/clip.py +++ b/scripts/startup/bl_operators/clip.py @@ -609,8 +609,18 @@ class CLIP_OT_setup_tracking_scene(Operator): con.influence = 1.0 cam.sensor_width = tracking.camera.sensor_width + cam.sensor_fit = 'HORIZONTAL' cam.lens = tracking.camera.focal_length + # Convert shift from motion tracking to Blender camera. + # Note that the normalization always happens along the X axis. This is + # how the camera shift in Blender is denoted. + width = clip.size[0] + height = clip.size[1] + principal_point_px = tracking.camera.principal_point_pixels + cam.shift_x = (0.5 * width - principal_point_px[0]) / width + cam.shift_y = (0.5 * height - principal_point_px[1]) / width + @staticmethod def _setupViewport(context): sc = context.space_data diff --git a/source/blender/blenkernel/intern/tracking.cc b/source/blender/blenkernel/intern/tracking.cc index b6c9801344a..8c80cf49427 100644 --- a/source/blender/blenkernel/intern/tracking.cc +++ b/source/blender/blenkernel/intern/tracking.cc @@ -2124,7 +2124,7 @@ void BKE_tracking_camera_to_blender( float focal = tracking->camera.focal; camera->sensor_x = tracking->camera.sensor_width; - camera->sensor_fit = CAMERA_SENSOR_FIT_AUTO; + camera->sensor_fit = CAMERA_SENSOR_FIT_HOR; camera->lens = focal * camera->sensor_x / width; scene->r.xsch = width;