diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-07-29 19:25:00 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-07-29 19:25:00 +0400 |
commit | 6745e45c48278a6cd5c089509aaaf5f178d13bca (patch) | |
tree | bf9a213ad7a8d7435b7b8b45815f5be956641184 /source/blender/blenkernel/BKE_tracking.h | |
parent | feffc920bb5dcb482c139299db929c39069cba71 (diff) |
Camera tracking integration
===========================
Implemented 2D stabilization:
- Based on average point of several tracks.
- Tracks for stabilization are controllable from
"2D stabilization" panel.
- Implemented autoscaling. Could fail if average point is
too close to frame boundary.
- Background clip in 3D viewport and MovieClip input
compositor nodes are using stable shot.
Some internal weak things:
- Stable shots aren't cached in moviecache. There is
only one "slot" for stable shot inside stabilization
structure.
- This could fail if several threads are requested different
frames (for example when starting playback, pause to make
Nodes Editor trigger refresh, continue playback).
- Due to it shouldn't crash i decided to implement better
caching for stable shots a bit later.
Diffstat (limited to 'source/blender/blenkernel/BKE_tracking.h')
-rw-r--r-- | source/blender/blenkernel/BKE_tracking.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h index 2956e100251..b864fbe6bec 100644 --- a/source/blender/blenkernel/BKE_tracking.h +++ b/source/blender/blenkernel/BKE_tracking.h @@ -87,6 +87,8 @@ void BKE_tracking_detect(struct MovieTracking *tracking, struct ImBuf *imbuf, in struct MovieTrackingTrack *BKE_tracking_indexed_bundle(struct MovieTracking *tracking, int bundlenr); +struct ImBuf *BKE_tracking_stabelize_shot(struct MovieTracking *tracking, int framenr, struct ImBuf *ibuf, float mat[4][4]); + #define TRACK_SELECTED(track) (((track->flag&TRACK_HIDDEN)==0) && ((track)->flag&SELECT || (track)->pat_flag&SELECT || (track)->search_flag&SELECT)) #define TRACK_AREA_SELECTED(track, area) (((track->flag&TRACK_HIDDEN)==0) && ((area)==TRACK_AREA_POINT?(track)->flag&SELECT : ((area)==TRACK_AREA_PAT?(track)->pat_flag&SELECT:(track)->search_flag&SELECT))) |