[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42180] branches/soc-2011-tomato: Camera tracking: presets for default tracking settings

Sergey Sharybin sergey.vfx at gmail.com
Sat Nov 26 22:09:36 CET 2011


Revision: 42180
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42180
Author:   nazgul
Date:     2011-11-26 21:09:29 +0000 (Sat, 26 Nov 2011)
Log Message:
-----------
Camera tracking: presets for default tracking settings

Internal changes are almost finished, changes in the interface need to be discussed.

Modified Paths:
--------------
    branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c

Added Paths:
-----------
    branches/soc-2011-tomato/release/scripts/presets/tracking_settings/
    branches/soc-2011-tomato/release/scripts/presets/tracking_settings/blurry_movie.py
    branches/soc-2011-tomato/release/scripts/presets/tracking_settings/default.py
    branches/soc-2011-tomato/release/scripts/presets/tracking_settings/fast_motion.py

Added: branches/soc-2011-tomato/release/scripts/presets/tracking_settings/blurry_movie.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/presets/tracking_settings/blurry_movie.py	                        (rev 0)
+++ branches/soc-2011-tomato/release/scripts/presets/tracking_settings/blurry_movie.py	2011-11-26 21:09:29 UTC (rev 42180)
@@ -0,0 +1,8 @@
+import bpy
+settings = bpy.context.edit_movieclip.tracking.settings
+
+settings.default_tracker = 'KLT'
+settings.default_pyramid_levels = 4
+settings.default_correlation_min = 0.75
+settings.default_pattern_size = 11
+settings.default_search_size = 202

Added: branches/soc-2011-tomato/release/scripts/presets/tracking_settings/default.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/presets/tracking_settings/default.py	                        (rev 0)
+++ branches/soc-2011-tomato/release/scripts/presets/tracking_settings/default.py	2011-11-26 21:09:29 UTC (rev 42180)
@@ -0,0 +1,8 @@
+import bpy
+settings = bpy.context.edit_movieclip.tracking.settings
+
+settings.default_tracker = 'KLT'
+settings.default_pyramid_levels = 2
+settings.default_correlation_min = 0.75
+settings.default_pattern_size = 11
+settings.default_search_size = 51

Added: branches/soc-2011-tomato/release/scripts/presets/tracking_settings/fast_motion.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/presets/tracking_settings/fast_motion.py	                        (rev 0)
+++ branches/soc-2011-tomato/release/scripts/presets/tracking_settings/fast_motion.py	2011-11-26 21:09:29 UTC (rev 42180)
@@ -0,0 +1,8 @@
+import bpy
+settings = bpy.context.edit_movieclip.tracking.settings
+
+settings.default_tracker = 'KLT'
+settings.default_pyramid_levels = 2
+settings.default_correlation_min = 0.75
+settings.default_pattern_size = 11
+settings.default_search_size = 121

Modified: branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py	2011-11-26 20:58:53 UTC (rev 42179)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py	2011-11-26 21:09:29 UTC (rev 42180)
@@ -360,6 +360,27 @@
     preset_subdir = "tracking_track_color"
 
 
+class AddPresetTrackingSettings(AddPresetBase, Operator):
+    '''Add a motion tracking settings preset'''
+    bl_idname = "clip.tracking_settings_preset_add"
+    bl_label = "Add Tracking Settings Preset"
+    preset_menu = "CLIP_MT_tracking_settings_presets"
+
+    preset_defines = [
+        "settings = bpy.context.edit_movieclip.tracking.settings"
+    ]
+
+    preset_values = [
+        "settings.default_tracker",
+        "settings.default_pyramid_levels",
+        "settings.default_correlation_min",
+        "settings.default_pattern_size",
+        "settings.default_search_size",
+    ]
+
+    preset_subdir = "tracking_settings"
+
+
 class AddPresetKeyconfig(AddPresetBase, Operator):
     '''Add a Keyconfig Preset'''
     bl_idname = "wm.keyconfig_preset_add"

Modified: branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-11-26 20:58:53 UTC (rev 42179)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py	2011-11-26 21:09:29 UTC (rev 42180)
@@ -92,6 +92,9 @@
         return clip and sc.mode == 'TRACKING'
 
     def draw(self, context):
+        sc = context.space_data
+        clip = sc.clip
+        settings = clip.tracking.settings
         layout = self.layout
 
         col = layout.column(align=True)
@@ -99,7 +102,37 @@
         col.operator("clip.detect_features")
         col.operator("clip.delete_track")
 
+        box = layout.box()
+        row = box.row(align=True)
+        row.prop(settings, "show_default_expanded", text="", emboss=False)
+        row.label(text="Default Settings")
 
+        if settings.show_default_expanded:
+            col = box.column()
+            row = col.row(align=True)
+            label = bpy.types.CLIP_MT_tracking_settings_presets.bl_label
+            row.menu('CLIP_MT_tracking_settings_presets', text=label)
+            row.operator("clip.tracking_settings_preset_add",
+                         text="", icon='ZOOMIN')
+            props = row.operator("clip.track_color_preset_add",
+                                 text="", icon='ZOOMOUT')
+            props.remove_active = True
+
+            col.separator()
+
+            col2 = col.column(align=True)
+            col2.prop(settings, "default_pattern_size")
+            col2.prop(settings, "default_search_size")
+
+            col.label(text="Tracker:")
+            col.prop(settings, "default_tracker", text="")
+
+            if settings.default_tracker == 'KLT':
+                col.prop(settings, "default_pyramid_levels")
+            else:
+                col.prop(settings, "default_correlation_min")
+
+
 class CLIP_PT_tools_tracking(Panel):
     bl_space_type = 'CLIP_EDITOR'
     bl_region_type = 'TOOLS'
@@ -447,20 +480,26 @@
         clip = context.space_data.clip
         settings = clip.tracking.settings
 
+        col = layout.column()
+
         active = clip.tracking.tracks.active
         if active:
-            layout.prop(active, "tracker")
+            col.prop(active, "tracker")
+
             if active.tracker == 'KLT':
-                layout.prop(active, "pyramid_levels")
+                col.prop(active, "pyramid_levels")
             elif active.tracker == 'SAD':
-                layout.prop(active, "correlation_min")
+                col.prop(active, "correlation_min")
 
-        layout.prop(settings, "frames_adjust")
-        layout.prop(settings, "speed")
-        layout.prop(settings, "frames_limit")
-        layout.prop(settings, "margin")
+            col.separator()
+            col.label(text="Global Settings:")
 
+        col.prop(settings, "speed")
+        col.prop(settings, "frames_adjust")
+        col.prop(settings, "frames_limit")
+        col.prop(settings, "margin")
 
+
 class CLIP_PT_stabilization(Panel):
     bl_space_type = 'CLIP_EDITOR'
     bl_region_type = 'UI'
@@ -866,6 +905,14 @@
     draw = bpy.types.Menu.draw_preset
 
 
+class CLIP_MT_tracking_settings_presets(Menu):
+    """Predefined track color"""
+    bl_label = "Tracking Settings"
+    preset_subdir = "tracking_settings"
+    preset_operator = "script.execute_preset"
+    draw = bpy.types.Menu.draw_preset
+
+
 class CLIP_MT_track_color_specials(Menu):
     bl_label = "Track Color Specials"
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-11-26 20:58:53 UTC (rev 42179)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-11-26 21:09:29 UTC (rev 42180)
@@ -45,6 +45,7 @@
 struct Object;
 struct Scene;
 
+void BKE_tracking_init_settings(struct MovieTracking *tracking);
 void BKE_tracking_clamp_track(struct MovieTrackingTrack *track, int event);
 void BKE_tracking_track_flag(struct MovieTrackingTrack *track, int area, int flag, int clear);
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c	2011-11-26 20:58:53 UTC (rev 42179)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c	2011-11-26 21:09:29 UTC (rev 42180)
@@ -369,20 +369,8 @@
 
 	clip->aspx= clip->aspy= 1.0f;
 
-	clip->tracking.camera.sensor_width= 35.0f;
-	clip->tracking.camera.pixel_aspect= 1.0f;
-	clip->tracking.camera.units= CAMERA_UNITS_MM;
+	BKE_tracking_init_settings(&clip->tracking);
 
-	clip->tracking.settings.frames_limit= 0;
-	clip->tracking.settings.keyframe1= 1;
-	clip->tracking.settings.keyframe2= 30;
-	clip->tracking.settings.dist= 1;
-
-	clip->tracking.stabilization.scaleinf= 1.0f;
-	clip->tracking.stabilization.locinf= 1.0f;
-	clip->tracking.stabilization.rotinf= 1.0f;
-	clip->tracking.stabilization.maxscale= 2.0f;
-
 	clip->proxy.build_size_flag= IMB_PROXY_25;
 	clip->proxy.build_tc_flag= IMB_TC_RECORD_RUN|IMB_TC_FREE_RUN|IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN;
 	clip->proxy.quality= 90;

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-11-26 20:58:53 UTC (rev 42179)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-11-26 21:09:29 UTC (rev 42180)
@@ -70,14 +70,38 @@
 
 /*********************** common functions *************************/
 
+void BKE_tracking_init_settings(MovieTracking *tracking)
+{
+	tracking->camera.sensor_width= 35.0f;
+	tracking->camera.pixel_aspect= 1.0f;
+	tracking->camera.units= CAMERA_UNITS_MM;
+
+	tracking->settings.default_tracker= TRACKER_KLT;
+	tracking->settings.default_pyramid_levels= 2;
+	tracking->settings.default_minimum_correlation= 0.75;
+	tracking->settings.default_pattern_size= 11;
+	tracking->settings.default_search_size= 51;
+	tracking->settings.default_pyramid_levels= 2;
+	tracking->settings.frames_limit= 0;
+	tracking->settings.keyframe1= 1;
+	tracking->settings.keyframe2= 30;
+	tracking->settings.dist= 1;
+
+	tracking->stabilization.scaleinf= 1.0f;
+	tracking->stabilization.locinf= 1.0f;
+	tracking->stabilization.rotinf= 1.0f;
+	tracking->stabilization.maxscale= 2.0f;
+}
+
 void BKE_tracking_clamp_track(MovieTrackingTrack *track, int event)
 {
 	int a;
 	float pat_min[2];
 	float pat_max[2];
 	float max_pyramid_level_factor = 1.0;
+
 	if (track->tracker == TRACKER_KLT) {
-		max_pyramid_level_factor = 1 << (track->pyramid_levels - 1);
+		max_pyramid_level_factor= 1 << (track->pyramid_levels - 1);
 	}
 
 	/* sort */
@@ -146,7 +170,7 @@
 		float dim[2];
 		sub_v2_v2v2(dim, track->pat_max, track->pat_min);
 		{
-			float search_ratio = 2.3f * max_pyramid_level_factor;
+			float search_ratio= 2.3f * max_pyramid_level_factor;
 
 			/* resize the search area to something sensible based
 			 * on the number of pyramid levels */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list