[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41875] trunk/blender: Camera tracking: made some options more easy to understand

Sergey Sharybin sergey.vfx at gmail.com
Tue Nov 15 13:20:58 CET 2011


Revision: 41875
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41875
Author:   nazgul
Date:     2011-11-15 12:20:58 +0000 (Tue, 15 Nov 2011)
Log Message:
-----------
Camera tracking: made some options more easy to understand

- Changed some names so now people who aren't really familiar with
  motion tracking can understand what they exactly means
- Also cleaned up and rephraded some descriptions
- Changed behavior of operator which creates empty for 2d tracks:
  now it operates on all selected tracks rather than active track only
- Added checkbox to enable/disable rotation stabilization

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_operators/clip.py
    trunk/blender/release/scripts/startup/bl_ui/space_clip.py
    trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
    trunk/blender/source/blender/blenkernel/intern/tracking.c
    trunk/blender/source/blender/editors/space_clip/clip_buttons.c
    trunk/blender/source/blender/editors/space_clip/clip_ops.c
    trunk/blender/source/blender/editors/space_clip/tracking_ops.c
    trunk/blender/source/blender/makesdna/DNA_tracking_types.h
    trunk/blender/source/blender/makesrna/intern/rna_movieclip.c
    trunk/blender/source/blender/makesrna/intern/rna_space.c
    trunk/blender/source/blender/makesrna/intern/rna_tracking.c

Added Paths:
-----------
    trunk/blender/release/scripts/presets/camera/Sony_A55.py
    trunk/blender/release/scripts/presets/tracking_camera/Sony_A55.py

Added: trunk/blender/release/scripts/presets/camera/Sony_A55.py
===================================================================
--- trunk/blender/release/scripts/presets/camera/Sony_A55.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/camera/Sony_A55.py	2011-11-15 12:20:58 UTC (rev 41875)
@@ -0,0 +1,5 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.4
+bpy.context.object.data.sensor_height = 15.6
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
+

Added: trunk/blender/release/scripts/presets/tracking_camera/Sony_A55.py
===================================================================
--- trunk/blender/release/scripts/presets/tracking_camera/Sony_A55.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/tracking_camera/Sony_A55.py	2011-11-15 12:20:58 UTC (rev 41875)
@@ -0,0 +1,11 @@
+import bpy
+camera = bpy.context.edit_movieclip.tracking.camera
+
+camera.sensor_width = 23.4
+camera.sensor_height = 15.6
+camera.units = 'MILLIMETERS'
+camera.focal_length = 24.0
+camera.pixel_aspect = 1
+camera.k1 = 0.0
+camera.k2 = 0.0
+camera.k3 = 0.0

Modified: trunk/blender/release/scripts/startup/bl_operators/clip.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/clip.py	2011-11-15 12:02:44 UTC (rev 41874)
+++ trunk/blender/release/scripts/startup/bl_operators/clip.py	2011-11-15 12:20:58 UTC (rev 41875)
@@ -24,27 +24,27 @@
 from bpy_extras.io_utils import unpack_list
 
 
+def CLIP_track_view_selected(sc, track):
+    if track.select_anchor:
+        return True
+
+    if sc.show_marker_pattern and track.select_pattern:
+        return True
+
+    if sc.show_marker_search and track.select_search:
+        return True
+
+    return False
+
 class CLIP_OT_track_to_empty(Operator):
     """Create an Empty object which will be copying movement of active track"""
 
     bl_idname = "clip.track_to_empty"
-    bl_label = "2D Track to Empty"
+    bl_label = "Link Empty to Track"
     bl_options = {'UNDO', 'REGISTER'}
 
-    @classmethod
-    def poll(cls, context):
-        if context.space_data.type != 'CLIP_EDITOR':
-            return False
-
+    def _link_track(self, context, track):
         sc = context.space_data
-        clip = sc.clip
-
-        return clip and clip.tracking.tracks.active
-
-    def execute(self, context):
-        sc = context.space_data
-        clip = sc.clip
-        track = clip.tracking.tracks.active
         constraint = None
         ob = None
 
@@ -65,6 +65,14 @@
         constraint.track = track.name
         constraint.use_3d_position = False
 
+    def execute(self, context):
+        sc = context.space_data
+        clip = sc.clip
+
+        for track in clip.tracking.tracks:
+            if CLIP_track_view_selected(sc, track):
+                self._link_track(context, track)
+
         return {'FINISHED'}
 
 
@@ -179,7 +187,7 @@
 
 
 class CLIP_OT_set_viewport_background(Operator):
-    """Set current movie clip as a camera background in 3D viewport"""
+    """Set current movie clip as a camera background in 3D viewport (works only when a 3D viewport is visible)"""
 
     bl_idname = "clip.set_viewport_background"
     bl_label = "Set as Background"

Modified: trunk/blender/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2011-11-15 12:02:44 UTC (rev 41874)
+++ trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2011-11-15 12:20:58 UTC (rev 41875)
@@ -55,7 +55,11 @@
 
                 if sc.show_filters:
                     row.prop(sc, "show_filters", icon='DISCLOSURE_TRI_DOWN', text="Filters")
-                    row.prop(sc, "show_graph_frames", icon='SEQUENCE', text="")
+
+                    sub = row.column()
+                    sub.active = clip.tracking.reconstruction.is_valid
+                    sub.prop(sc, "show_graph_frames", icon='SEQUENCE', text="")
+
                     row.prop(sc, "show_graph_tracks", icon='ANIM', text="")
                 else:
                     row.prop(sc, "show_filters", icon='DISCLOSURE_TRI_RIGHT', text="Filters")
@@ -130,16 +134,16 @@
         props = col.operator("clip.clear_track_path", text="Clear Before")
         props.action = 'UPTO'
 
-        props = col.operator("clip.clear_track_path", text="Clear Track Path")
+        props = col.operator("clip.clear_track_path", text="Clear")
         props.action = 'ALL'
 
-        layout.operator("clip.join_tracks")
+        layout.operator("clip.join_tracks", text="Join")
 
 
-class CLIP_PT_tools_solving(Panel):
+class CLIP_PT_tools_solve(Panel):
     bl_space_type = 'CLIP_EDITOR'
     bl_region_type = 'TOOLS'
-    bl_label = "Solving"
+    bl_label = "Solve"
 
     @classmethod
     def poll(cls, context):
@@ -154,7 +158,7 @@
         settings = clip.tracking.settings
 
         col = layout.column(align=True)
-        col.operator("clip.solve_camera")
+        col.operator("clip.solve_camera", text="Camera Motion")
         col.operator("clip.clear_solution")
 
         col = layout.column(align=True)
@@ -405,8 +409,8 @@
         col.prop(sc, "show_disabled", "Disabled Tracks")
         col.prop(sc, "show_bundles", text="Bundles")
 
-        col.prop(sc, "show_names", text="Track Names")
-        col.prop(sc, "show_tiny_markers", text="Tiny Markers")
+        col.prop(sc, "show_names", text="Track Names and Status")
+        col.prop(sc, "show_tiny_markers", text="Compact Markers")
 
         col.prop(sc, "show_grease_pencil", text="Grease Pencil")
         col.prop(sc, "use_mute_footage", text="Mute")
@@ -421,7 +425,7 @@
 
         clip = sc.clip
         if clip:
-            col.label(text="Display Aspect:")
+            col.label(text="Display Aspect Ratio:")
             col.prop(clip, "display_aspect", text="")
 
 
@@ -496,23 +500,21 @@
 
         layout.prop(stab, "influence_location")
 
-        layout.separator()
-
         layout.prop(stab, "use_autoscale")
         col = layout.column()
         col.active = stab.use_autoscale
         col.prop(stab, "scale_max")
         col.prop(stab, "influence_scale")
 
-        layout.separator()
+        layout.prop(stab, "use_stabilize_rotation")
+        col = layout.column()
+        col.active = stab.use_stabilize_rotation
 
-        layout.label(text="Rotation:")
-
-        row = layout.row(align=True)
+        row = col.row(align=True)
         row.prop_search(stab, "rotation_track", tracking, "tracks", text="")
         row.operator("clip.stabilize_2d_set_rotation", text="", icon='ZOOMIN')
 
-        row = layout.row()
+        row = col.row()
         row.active = stab.rotation_track is not None
         row.prop(stab, "influence_rotation")
 
@@ -854,6 +856,7 @@
 
 
 class CLIP_MT_camera_presets(Menu):
+    """Predefined tracking camera intrinsics"""
     bl_label = "Camera Presets"
     preset_subdir = "tracking_camera"
     preset_operator = "script.execute_preset"
@@ -861,6 +864,7 @@
 
 
 class CLIP_MT_track_color_presets(Menu):
+    """Predefined track color"""
     bl_label = "Color Presets"
     preset_subdir = "tracking_track_color"
     preset_operator = "script.execute_preset"

Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py	2011-11-15 12:02:44 UTC (rev 41874)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py	2011-11-15 12:20:58 UTC (rev 41875)
@@ -2204,7 +2204,7 @@
 
         col = layout.column()
         col.active = view.show_reconstruction
-        col.prop(view, "show_tracks_name", text="Show Names")
+        col.prop(view, "show_tracks_name")
         col.prop(view, "show_camera_path")
         col.label(text="Tracks:")
         col.prop(view, "tracks_draw_type", text="")

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c	2011-11-15 12:02:44 UTC (rev 41874)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c	2011-11-15 12:20:58 UTC (rev 41875)
@@ -1874,7 +1874,7 @@
 
 	mul_v2_fl(loc, stab->locinf);
 
-	if(stab->rot_track && stab->rotinf) {
+	if((stab->flag&TRACKING_STABILIZE_ROTATION) && stab->rot_track && stab->rotinf) {
 		MovieTrackingMarker *marker;
 		float a[2], b[2];
 		float x0= (float)width/2.0f, y0= (float)height/2.0f;
@@ -1916,7 +1916,8 @@
 
 		track= tracking->tracks.first;
 		while(track) {
-			if(track->flag&TRACK_USE_2D_STAB || track==stab->rot_track) {
+			if(track->flag&TRACK_USE_2D_STAB ||
+			   ((stab->flag&TRACKING_STABILIZE_ROTATION) && track==stab->rot_track)) {
 				if(track->markersnr) {
 					sfra= MIN2(sfra, track->markers[0].framenr);
 					efra= MAX2(efra, track->markers[track->markersnr-1].framenr);

Modified: trunk/blender/source/blender/editors/space_clip/clip_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_buttons.c	2011-11-15 12:02:44 UTC (rev 41874)
+++ trunk/blender/source/blender/editors/space_clip/clip_buttons.c	2011-11-15 12:20:58 UTC (rev 41875)
@@ -320,6 +320,7 @@
 	MovieTrackingTrack *track;
 	MovieTrackingMarker *marker;
 	MarkerUpdateCb *cb;
+	const char *tip;
 
 	if(!ptr->data)
 		return;
@@ -353,7 +354,12 @@
 	if(compact) {
 		block= uiLayoutGetBlock(layout);
 
-		bt= uiDefIconButBitI(block, TOGN, MARKER_DISABLED, 0, ICON_RESTRICT_VIEW_OFF, 0, 0, 20, 20, &cb->marker_flag, 0, 0, 1, 0, "Marker is disabled for current frame.");
+		if(cb->marker_flag&MARKER_DISABLED)
+			tip= "Marker is disabled at current frame";
+		else
+			tip= "Marker is enabled at current frame";
+
+		bt= uiDefIconButBitI(block, TOGN, MARKER_DISABLED, 0, ICON_RESTRICT_VIEW_OFF, 0, 0, 20, 20, &cb->marker_flag, 0, 0, 1, 0, tip);
 		uiButSetNFunc(bt, marker_update_cb, cb, NULL);
 	} else {
 		int width, height, step, digits;
@@ -394,8 +400,13 @@
 		uiBlockSetHandleFunc(block, marker_block_handler, cb);
 		uiBlockSetNFunc(block, marker_update_cb, cb, NULL);
 
+		if(cb->marker_flag&MARKER_DISABLED)
+			tip= "Marker is disabled at current frame";
+		else
+			tip= "Marker is enabled at current frame";
+
 		uiDefButBitI(block, OPTIONN, MARKER_DISABLED, B_MARKER_FLAG,  "Enabled", 10, 190, 145, 19, &cb->marker_flag,

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list