diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-10-26 17:22:38 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-10-26 17:22:38 +0400 |
commit | 9f32e83175448eaf654cc228caa70065d63df13a (patch) | |
tree | 28e33dd37d490209be9c960b7621055ae5628458 /source/blender/editors/space_clip | |
parent | 4a15df15711628c65282cc4d5a1dfd852776e014 (diff) |
Weighted tracks
Added a weight slider to track which defines
how much particular track affects in a final
reconstruction. This weight is for sure
animateable.
Currently it affects on BA step only which in
most cases will work just fine.
The usecase of this slider is to have it set
to 1.0 most of the time where the track is
good, but blend it's weight down to 0 when
tracker looses the track. This will prevent
camera from jump.
Tutorial is to be done by Sebastian.
Diffstat (limited to 'source/blender/editors/space_clip')
-rw-r--r-- | source/blender/editors/space_clip/clip_utils.c | 9 | ||||
-rw-r--r-- | source/blender/editors/space_clip/tracking_ops.c | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/editors/space_clip/clip_utils.c b/source/blender/editors/space_clip/clip_utils.c index dfd2b6e259d..060531ae82c 100644 --- a/source/blender/editors/space_clip/clip_utils.c +++ b/source/blender/editors/space_clip/clip_utils.c @@ -37,7 +37,9 @@ #include "BLI_utildefines.h" #include "BLI_math.h" #include "BLI_listbase.h" +#include "BLI_string.h" +#include "BKE_animsys.h" #include "BKE_context.h" #include "BKE_movieclip.h" #include "BKE_tracking.h" @@ -184,8 +186,8 @@ void clip_delete_track(bContext *C, MovieClip *clip, MovieTrackingTrack *track) MovieTrackingPlaneTrack *plane_track, *next_plane_track; ListBase *tracksbase = BKE_tracking_get_active_tracks(tracking); ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(tracking); - bool has_bundle = false, update_stab = false; + char track_name_escaped[MAX_NAME], prefix[MAX_NAME * 2]; if (track == act_track) tracking->act_track = NULL; @@ -245,6 +247,11 @@ void clip_delete_track(bContext *C, MovieClip *clip, MovieTrackingTrack *track) } } + /* Delete f-curves associated with the track (such as weight, i.e.) */ + BLI_strescape(track_name_escaped, track->name, sizeof(track_name_escaped)); + BLI_snprintf(prefix, sizeof(prefix), "tracks[\"%s\"]", track_name_escaped); + BKE_animdata_fix_paths_remove(&clip->id, prefix); + BKE_tracking_track_free(track); BLI_freelinkN(tracksbase, track); diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index 246ea7fe140..51d7bc3139a 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -1550,7 +1550,7 @@ static int solve_camera_initjob(bContext *C, SolveCameraJob *scj, wmOperator *op scj->reports = op->reports; scj->user = sc->user; - scj->context = BKE_tracking_reconstruction_context_new(tracking, object, + scj->context = BKE_tracking_reconstruction_context_new(clip, object, object->keyframe1, object->keyframe2, width, height); tracking->stats = MEM_callocN(sizeof(MovieTrackingStats), "solve camera stats"); |