diff --git a/release/scripts/presets/tracking_settings/blurry_footage.py b/release/scripts/presets/tracking_settings/blurry_footage.py index de6f085f53d..253a8f395ba 100644 --- a/release/scripts/presets/tracking_settings/blurry_footage.py +++ b/release/scripts/presets/tracking_settings/blurry_footage.py @@ -15,3 +15,4 @@ settings.use_default_red_channel = True settings.use_default_green_channel = True settings.use_default_blue_channel = True settings.default_correlation_min = 0.6 +settings.default_weight = 1.0 diff --git a/release/scripts/presets/tracking_settings/default.py b/release/scripts/presets/tracking_settings/default.py index 3c61ea7cd7f..c25b1140249 100644 --- a/release/scripts/presets/tracking_settings/default.py +++ b/release/scripts/presets/tracking_settings/default.py @@ -15,3 +15,4 @@ settings.use_default_red_channel = True settings.use_default_green_channel = True settings.use_default_blue_channel = True settings.default_correlation_min = 0.75 +settings.default_weight = 1.0 diff --git a/release/scripts/presets/tracking_settings/fast_motion.py b/release/scripts/presets/tracking_settings/fast_motion.py index 6051f235b0c..4294b7327d1 100644 --- a/release/scripts/presets/tracking_settings/fast_motion.py +++ b/release/scripts/presets/tracking_settings/fast_motion.py @@ -15,3 +15,4 @@ settings.use_default_red_channel = True settings.use_default_green_channel = True settings.use_default_blue_channel = True settings.default_correlation_min = 0.6 +settings.default_weight = 1.0 diff --git a/release/scripts/presets/tracking_settings/planar.py b/release/scripts/presets/tracking_settings/planar.py index 49a64046002..a099b3a800d 100644 --- a/release/scripts/presets/tracking_settings/planar.py +++ b/release/scripts/presets/tracking_settings/planar.py @@ -15,3 +15,4 @@ settings.use_default_red_channel = True settings.use_default_green_channel = True settings.use_default_blue_channel = True settings.default_correlation_min = 0.75 +settings.default_weight = 1.0 diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py index f1da0ff615d..8b0ed7d9942 100644 --- a/release/scripts/startup/bl_operators/presets.py +++ b/release/scripts/startup/bl_operators/presets.py @@ -476,6 +476,7 @@ class AddPresetTrackingSettings(AddPresetBase, Operator): "settings.use_default_red_channel", "settings.use_default_green_channel", "settings.use_default_blue_channel" + "settings.default_weight" ] preset_subdir = "tracking_settings" diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index 55113e406a3..00c2f7ae9e5 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -335,6 +335,9 @@ class CLIP_PT_tracking_settings(CLIP_PT_tracking_panel, Panel): sub.prop(settings, "default_frames_limit") sub.prop(settings, "default_margin") + col = box.column() + col.prop(settings, "default_weight") + class CLIP_PT_tools_tracking(CLIP_PT_tracking_panel, Panel): bl_space_type = 'CLIP_EDITOR' diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index de20f4a8ac6..e72b3697efa 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -200,6 +200,7 @@ void BKE_tracking_settings_init(MovieTracking *tracking) tracking->settings.default_pattern_size = 15; tracking->settings.default_search_size = 61; tracking->settings.default_algorithm_flag |= TRACK_ALGORITHM_FLAG_USE_BRUTE; + tracking->settings.default_weight = 1.0f; tracking->settings.dist = 1; tracking->settings.object_distance = 1; @@ -418,7 +419,7 @@ MovieTrackingTrack *BKE_tracking_track_add(MovieTracking *tracking, ListBase *tr track->frames_limit = settings->default_frames_limit; track->flag = settings->default_flag; track->algorithm_flag = settings->default_algorithm_flag; - track->weight = 1.0f; + track->weight = settings->default_weight; memset(&marker, 0, sizeof(marker)); marker.pos[0] = x; diff --git a/source/blender/blenloader/intern/versioning_260.c b/source/blender/blenloader/intern/versioning_260.c index af6355d7009..2880fec698b 100644 --- a/source/blender/blenloader/intern/versioning_260.c +++ b/source/blender/blenloader/intern/versioning_260.c @@ -2719,4 +2719,11 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *main) } } } + + if (!DNA_struct_elem_find(fd->filesdna, "MovieTrackingSettings", "float", "default_weight")) { + MovieClip *clip; + for (clip = main->movieclip.first; clip; clip = clip->id.next) { + clip->tracking.settings.default_weight = 1.0f; + } + } } diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h index 78faf5d8547..a5079cb6c6f 100644 --- a/source/blender/makesdna/DNA_tracking_types.h +++ b/source/blender/makesdna/DNA_tracking_types.h @@ -210,6 +210,7 @@ typedef struct MovieTrackingSettings { short default_margin; /* margin from frame boundaries */ short default_pattern_match; /* re-adjust every N frames */ short default_flag; /* default flags like color channels used by default */ + float default_weight; /* default weight of the track */ short motion_flag; /* flags describes motion type */ @@ -222,7 +223,7 @@ typedef struct MovieTrackingSettings { * were moved to per-tracking object settings */ - int reconstruction_flag, pad; + int reconstruction_flag; /* which camera intrinsics to refine. uses on the REFINE_* flags */ short refine_camera_intrinsics, pad2; diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index 8cb82643b87..289556b5862 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -930,6 +930,10 @@ static void rna_def_trackingSettings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Use Blue Channel", "Use blue channel from footage for tracking"); RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, NULL); + prop = RNA_def_property(srna, "default_weight", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Weight", "Influence of newly created track on a final solution"); + /* ** object tracking ** */ /* object distance */