diff options
author | Sergey Sharybin <sergey@blender.org> | 2022-06-28 17:03:35 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2022-07-01 10:44:07 +0300 |
commit | e4bf58e2852856e5c9d81ce04e6e9bb967795054 (patch) | |
tree | 933372cbcfa63a97a2e336b17d10cbbdf6a7658a /release | |
parent | 72b9e07cf26ddeb26ea8773004b951a7f1bff7c5 (diff) |
Tracking: Image from Plane Marker operators
There are two operators added, which are available via a special
content menu next to the plane track image selector:
- New Image from Plane Marker
- Update Image from Plane Marker
The former one creates an image from pixels which the active plane
track marker "sees" at the current frame and sets it as the plane
track's image.
The latter one instead of creating the new image data-block updates
the image in-place.
This allows to create unwarped texture from a billboard from footage.
The intent is to allow this image to be touched up and re-projected
back to the footage with an updated content.
Available from a plane track image context menu, as well as from the
Track menu.
{F13243219}
The demo of the feature from Sebastian Koenig: https://www.youtube.com/watch?v=PDphO-w2SsA
Differential Revision: https://developer.blender.org/D15312
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_clip.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index a806e9e0c33..c337e8018e6 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -771,8 +771,10 @@ class CLIP_PT_plane_track(CLIP_PT_tracking_panel, Panel): layout.prop(active_track, "name") layout.prop(active_track, "use_auto_keying") - layout.template_ID( + row = layout.row() + row.template_ID( active_track, "image", new="image.new", open="image.open") + row.menu("CLIP_MT_plane_track_image_context_menu", icon='DOWNARROW_HLT', text="") row = layout.row() row.active = active_track.image is not None @@ -1483,6 +1485,10 @@ class CLIP_MT_track(Menu): layout.operator("clip.create_plane_track") layout.separator() + layout.operator("clip.new_image_from_plane_marker") + layout.operator("clip.update_image_from_plane_marker") + + layout.separator() layout.operator( "clip.solve_camera", @@ -1634,6 +1640,16 @@ class CLIP_MT_tracking_context_menu(Menu): draw_mask_context_menu(layout, context) +class CLIP_MT_plane_track_image_context_menu(Menu): + bl_label = "Plane Track Image Specials" + + def draw(self, _context): + layout = self.layout + + layout.operator("clip.new_image_from_plane_marker") + layout.operator("clip.update_image_from_plane_marker") + + class CLIP_PT_camera_presets(PresetPanel, Panel): """Predefined tracking camera intrinsics""" bl_label = "Camera Presets" @@ -1935,6 +1951,7 @@ classes = ( CLIP_MT_select, CLIP_MT_select_grouped, CLIP_MT_tracking_context_menu, + CLIP_MT_plane_track_image_context_menu, CLIP_PT_camera_presets, CLIP_PT_track_color_presets, CLIP_PT_tracking_settings_presets, |