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:
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)
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue