Fix T74322: Wrong object bundles with scaled camera

Camera scale was not handled correctly when drawing 3d bundles for
reconstructed objects (caused by normalization of the matrix).
This commit is contained in:
Sergey Sharybin 2020-03-17 17:48:07 +01:00
parent 6a0ddb4bb1
commit 07d5b8b023
Notes: blender-bot 2023-02-14 08:39:23 +01:00
Referenced by issue #75147, Object Tracker Constraint - Improper scale/placement, objects won't follow if tracks scaled in movie clip editior
Referenced by issue #74322, Object Tracking markers are not scaled with the camera scale visually (but actually are scaled internally???) (With file and video)
1 changed files with 6 additions and 5 deletions

View File

@ -875,11 +875,9 @@ static void camera_view3d_reconstruction(OVERLAY_ExtraCallBuffers *cb,
UI_GetThemeColor4ubv(TH_SELECT, text_color_selected);
UI_GetThemeColor4ubv(TH_TEXT, text_color_unselected);
float camera_mat[4][4], normal_mat[4][4];
float camera_mat[4][4];
BKE_tracking_get_camera_object_matrix(ob, camera_mat);
normalize_m4_m4(normal_mat, ob->obmat);
LISTBASE_FOREACH (MovieTrackingObject *, tracking_object, &tracking->objects) {
float tracking_object_mat[4][4];
@ -889,12 +887,15 @@ static void camera_view3d_reconstruction(OVERLAY_ExtraCallBuffers *cb,
else {
const int framenr = BKE_movieclip_remap_scene_to_clip_frame(
clip, DEG_get_ctime(draw_ctx->depsgraph));
float object_mat[4][4];
BKE_tracking_camera_get_reconstructed_interpolate(
tracking, tracking_object, framenr, object_mat);
invert_m4(object_mat);
mul_m4_m4m4(tracking_object_mat, normal_mat, object_mat);
float object_imat[4][4];
invert_m4_m4(object_imat, object_mat);
mul_m4_m4m4(tracking_object_mat, ob->obmat, object_imat);
}
ListBase *tracksbase = BKE_tracking_object_get_tracks(tracking, tracking_object);