diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-08-01 19:28:19 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-08-01 19:28:19 +0400 |
commit | b5716beef0c1c8ddd524e43aef182c3d7e651aba (patch) | |
tree | 6779f5bed217d95bc272891cbd0c5d7faaf0a1fb /source/blender/editors/space_clip/space_clip.c | |
parent | e9b3225b8d3df25d2b3f87b83398113f87d90854 (diff) |
Camera tracking integration
===========================
- Do not show frame boundary border when stabilization isn't enabled.
- Separate stabilization settings from display in clip editor.
Now clip can contain stabilization data but still be displayed
un-stabilized in clip editor.
- Internal changes in stabilization:
* Use separated location/scale parameters rather than 4x4 matrix.
In some ares "decomposed" data is needed (text draw functions, i.e.).
Also such decomposed data could be used in compositor.
* MovieClip now uses own structure for cache where additional data
can be stored. MovieCache structure now one of properties in
this new structure.
* Get rid of stable image buffer stored in MovieClipStabilization
structure. Pre-created buffer for scaling still stored there.
This helps to keep playback realtime -- re-creating this buffer
introduces ~15% slowdown.
- Added sliders to 2D stabilization panel which controls intensity
of translation/scale which applies on shot.
- Added filter type to Stabilize2D compositor node. Supports nearest,
bilinear and bicubic interpolation.
- After discussion with Sebastian and Francois added new node called
Transformation. It can apply translation, rotation and scale. It's
not the same thing as applying this components separately -- all
transformation is happening inside "canvas". And it should be more
accurate on interpolation and sub-pixel translation.
Need to check order of applying translation/scale/rotation btw.
- Added output sockets to movie clip compositor node. They holds
stabilization data which can be used by Translate or Transform
nodes.
- Minor fix of UI issues in Display panel.
Diffstat (limited to 'source/blender/editors/space_clip/space_clip.c')
-rw-r--r-- | source/blender/editors/space_clip/space_clip.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c index 2cade521b39..48c0853eb38 100644 --- a/source/blender/editors/space_clip/space_clip.c +++ b/source/blender/editors/space_clip/space_clip.c @@ -84,17 +84,13 @@ static void clip_scopes_tag_refresh(ScrArea *sa) sc->scopes.ok= 0; } -static void clip_stabilization_tag_refresh(ScrArea *sa, int edited) +static void clip_stabilization_tag_refresh(ScrArea *sa) { SpaceClip *sc= (SpaceClip *)sa->spacedata.first; MovieClip *clip= ED_space_clip(sc); MovieTrackingStabilization *stab= &clip->tracking.stabilization; - if(edited) { - stab->ok= 0; - } else { - stab->ibufok= 0; - } + stab->ok= 0; } /* ******************** default callbacks for clip space ***************** */ @@ -177,7 +173,6 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) switch(wmn->data) { case ND_FRAME: clip_scopes_tag_refresh(sa); - clip_stabilization_tag_refresh(sa, 0); /* no break! */ case ND_FRAME_RANGE: @@ -196,11 +191,13 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) } switch(wmn->action) { case NA_REMOVED: - case NA_SELECTED: case NA_EDITED: case NA_EVALUATED: + clip_stabilization_tag_refresh(sa); + /* no break! */ + + case NA_SELECTED: clip_scopes_tag_refresh(sa); - clip_stabilization_tag_refresh(sa, 1); ED_area_tag_redraw(sa); break; } @@ -215,14 +212,13 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) break; case NC_SCREEN: if(wmn->data==ND_ANIMPLAY) { - clip_stabilization_tag_refresh(sa, 0); ED_area_tag_redraw(sa); } break; case NC_SPACE: if(wmn->data==ND_SPACE_CLIP) { clip_scopes_tag_refresh(sa); - clip_stabilization_tag_refresh(sa, 0); + clip_stabilization_tag_refresh(sa); ED_area_tag_redraw(sa); } break; @@ -496,7 +492,7 @@ static void clip_main_area_draw(const bContext *C, ARegion *ar) ImBuf *tmpibuf= NULL; if(clip && clip->tracking.stabilization.flag&TRACKING_2D_STABILIZATION) { - tmpibuf= ED_space_clip_acquire_stable_buffer(sc, sc->stabmat); + tmpibuf= ED_space_clip_acquire_stable_buffer(sc, NULL, NULL); } ED_clip_view_selection(sc, ar, 0); |