Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-05-26Fix T50908: Motion Tracker ignored grease pencil maskSergey Sharybin
This feature got lost with new auto-track API, Added it back by extending frame accessor class. This isn't really a frame thing, but we don't have other type of accessor here. Surely, we can use old-style API here and pass mask via region tracker options for this particular case, but then it becomes much less obvious how real auto-tracker will access this mask with old style API. So seems we do need an accessor for such data, just matter of finding better place than frame accessor.
2017-01-16Cleanup/refactor: Add new BLI_string_util.Bastien Montagne
Things like `BLI_uniquename` had nothing, but really nothing to do in BLI_path_util files! Also, got rid of length limitation in `BLI_uniquename_cb`, we can use alloca here to avoid overhead of malloc while keeping free size (within reasonable limits of course).
2016-10-26Cleanup: rename functions in BLI_bitmap_draw_2dCampbell Barton
2016-10-26Cleanup: move bitmap drawing into its own moduleCampbell Barton
Bitmap drawing is out-of-scope for a general math API, move to BLI_bitmap_draw_2d.
2016-08-232D stabilization: by default init anchor_frame to frame 1Ichthyostega
It is common in blender to use 1-based counting for frame sequences (while 0-based is allowed). Thus initializing to use frame 1 as reference for stabilization is likely to produce smooth start values in most cases
2016-08-162D stabilizer: Revert majority of UI changeSergey Sharybin
For now simply reshuffle option so they keep proper dependency flow. Benefits: - Has an ability to hide tracks lists to work with other sliders around. Could be really handy to quickly get rid of lenghty lists. - From a feedback seems to be fitting workflow better. Things to doublecheck on: - Feels a bit misordered: first you define whether one want to have rotation stabilized, then have tracks, then scale options. While this follows dependency flow (which is really good and which we should not violate) it has weird feeling on whether things are really where they have to be. - Autoscale controls visibility of max-scale, can we just make it active/inactive instead? - Autoscale replaces slider with label. Can it be disabled slider instead to reduce visual jumping (disabled slider prevents user input) Hopefully we'll still want to have collapsable box after re-iterating over this points, so we don't waste bits in DNA.
2016-08-162D stabilization: Modify interface so dependency goes strictly from top to ↵Sergey Sharybin
bottom
2016-08-16Rework 2D stabilizatorIchthyostega
See this page for motivation and description of concepts: https://github.com/Ichthyostega/blender/wiki See this video for UI explanation and demonstration of usage http://vimeo.com/blenderHack/stabilizerdemo This proposal attempts to improve usability of Blender's image stabilization feature for real-world footage esp. with moving and panning camera. It builds upon the feature tracking to get a measurement of 2D image movement. - Use a weighted average of movement contributions (instead of a median). - Allow for rotation compensation and zoom (image scale) compensation. - Allow to pick a different set of tracks for translation and for rotation/zoom. - Treat translation / rotation / zoom contributions systematically in a similar way. - Improve handling of partial tracking data with gaps and varying start / end points. - Have a user definable anchor frame and interpolate / extrapolate data to avoid jumping back to "neutral" position when no tracking data is available. - Support for travelling and panning shots by including an //intended// position/rotation/zoom ("target position"). The idea is for these parameters to be //animated// by the user, in order to supply an smooth, intended camera movement. This way, we can keep the image content roughly in frame even when moving completely away from the initial view. A known shortcoming is that the pivot point for rotation compensation is set to the translation compensated image center. This can produce spurious rotation on travelling shots, which needs to be compensated manually (by animating the target rotation parameter). There are several possible ways to address that problem, yet all of them are considered beyond the scope of this improvement proposal for now. Own modifications: - Restrict line length, it's really handy for split-view editing - In motion tracking we prefer fully human-readable comments, meaning we don't use doxygen with it's weird markup and comments are supposed to start with capital and end with a full stop, - Add explicit comparison of pointer to NULL. Reviewers: sergey Subscribers: kusi, kdawg, forest-house, mardy, Samoth, plasmasolutions, willolis, sebastian_k, hype, enetheru, sunboy, jta, leon_cheung Maniphest Tasks: T49036 Differential Revision: https://developer.blender.org/D583
2016-07-31Cleanup: spelling, styleCampbell Barton
2016-07-30Add copy/make_local to movieclip datablock.Bastien Montagne
As title says... Copying tracking data from movieclip was not the simplest thing... Reviewers: sergey Differential Revision: https://developer.blender.org/D2126
2016-01-26Compositor: Speedup movie (un)distortion operationSergey Sharybin
Avoid per-pixel camera intrincs object construction and synchronization. Here on a bit synthetic file it gives about 40% speedup with a single node.
2016-01-08Math Lib: use x-span for fill_poly_v2i_n callbackCampbell Barton
Instead of running the callback per-pixel, pass the x-span to the callback.
2016-01-08Tracking: Cleanup, reduce scope of some variablesSergey Sharybin
2016-01-08Tracking: Use BLI mask rasterization for track masksSergey Sharybin
2015-11-23Cleanup: shadowing (blenkernel)Campbell Barton
2015-08-18Refactor translation code out of blenfontCampbell Barton
- Add blentranslation `BLT_*` module. - moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`). - moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2015-07-13Fix T45394: Motion tracking constraints did not work with Cycles motion blurSergey Sharybin
2015-05-08Cleanup: use r_* prefix for return argsCampbell Barton
2015-04-22Tracking: Add missing plane track remapping when joining two point tracksSergey Sharybin
2015-04-22Tracking: Cleanup, move some plane tracks code to utility functionsSergey Sharybin
2015-03-21Cleanup: use tabsCampbell Barton
2015-01-26Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).Bastien Montagne
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)' and 'strcmp(foo, bar) == 0' in several places...
2014-11-18Fix T42585: Mask motion blur is wrong when parented to plane trackSergey Sharybin
it wasn't wrong, it wasn't implemented.
2014-11-16Cleanup: use BLI_listbase_*** prefix for count,sort,sort_rCampbell Barton
2014-09-26Tracking: Some minor improvements to copy-pasteSergey Sharybin
- Deselect all existing tracks when pasteing, makes it easier to tweak stuff after the paste. - Make first of the pasted tracks active.
2014-09-25Tracking: Decouple C-API module into more granular filesSergey Sharybin
This way maintaining the C-API is a bit less tedious job and makes code cleaner to follow. Should be no functional changes.
2014-09-24Cleanup: const correctness for BLI_sortlistCampbell Barton
2014-09-11Fix wrong area of interest for movie undistortionSergey Sharybin
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-17Support multiple distortion models, including a new division modelSergey Sharybin
This commit makes it so CameraIntrinsics is no longer hardcoded to use the traditional polynomial radial distortion model. Currently the distortion code has generic logic which is shared between different distortion models, but had no other models until now. This moves everything specific to the polynomial radial distortion to a subclass PolynomialDistortionCameraIntrinsics(), and adds a new division distortion model suitable for cameras such as the GoPro which have much stronger distortion due to their fisheye lens. This also cleans up the internal API of CameraIntrinsics to make it easier to understand and reduces old C-style code. New distortion model is available in the Lens panel of MCE. - Polynomial is the old well-known model - Division is the new one which s intended to deal better with huge distortion. Coefficients of this model works independent from each other and for division model one probably want to have positive values to have a barrel distortion.
2014-04-10Speedup track preview widget for byte imagesSergey Sharybin
This gives a huge speedup gain for cases when you've got rather huge markers on a byte images. Done by skipping IMB_float_from_rect()/IMB_rect_from_float() for such cases. We can sample the buffers without color space conversion.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-31Code cleanup: use bool instead of short in motrackSergey Sharybin
2014-02-19Change default track to 15px pattern and 71px searchSergey Sharybin
After recent seed improvements it makes tracking more robust without speed loss.
2014-02-19Added track weight to presetsSergey Sharybin
Useful for cases when you need to create bunch of witness tracks.
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-01-31Code cleanup: be less vague checking invalid index valuesCampbell Barton
2014-01-28Followup to the previous commitSergey Sharybin
Need to take weight into account when drawing per-frame track reprojection curve and when computing per-track average error.
2014-01-01Code cleanup: line wraps and file names in doxy commentsSergey Sharybin
2014-01-01Split tracking.c into several filesSergey Sharybin
File tracking.c became rather huge and annoying to maintain and it really contains several independent areas of motrack pipeline. Now we've got: * tracking.c: general-purpose functions which are used by blender, clip editor, RNA and so. * tracking_detect.c: feature detection functions (blender-side, logic is still in libmv). * tracking_plane_tracker.c: blender-side 2D tracking logic. * tracking_plane_tracker.c: plane track tracker. * tracking_solver.c: functions for camera solving. * tracking_stabilize.c: 2D stabilization functions. * tracking_util.c: utility functions for all those files and which shouldn't be public.
2013-12-22Style Cleanup: remove preprocessor indentation (updated wiki style guide too)Campbell Barton
2013-11-29Image wrapping for plane track in clip editorSergey Sharybin
Summary: Now it's possible to assign an image to plane tracks in clip editor. This image is only used for display in clip editor and this image is being warped into the plane track rectangle. Main purpose of this is to get early feedback about how good image warping matches the footage, before clip goes to the compositor. Pretty much straightforward change: just compute homography from undeformed normalized frame corner coordinates (unity square) to plane marker corners and apply this matrix to opengl stack. Still could improve behavior when perspective plane transform is degenerate, but that's not so much critical for now i'd say. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: sebastian_k Differential Revision: http://developer.blender.org/D57
2013-10-26Weighted tracksSergey Sharybin
Added a weight slider to track which defines how much particular track affects in a final reconstruction. This weight is for sure animateable. Currently it affects on BA step only which in most cases will work just fine. The usecase of this slider is to have it set to 1.0 most of the time where the track is good, but blend it's weight down to 0 when tracker looses the track. This will prevent camera from jump. Tutorial is to be done by Sebastian.
2013-10-26correct typoCampbell Barton
2013-10-20Code cleanup: added generic function copt_m3_m3dSergey Sharybin
2013-10-15Get rid of Allow Fallback optionSergey Sharybin
It was rather confusing from the user usage point of view and didn't get so much improvement after new bundle adjuster was added. In the future we might want to switch resection to PPnP algorithm, which could also might be a nice alternative to fallback option.
2013-09-30Fix for plane track jitteringSergey Sharybin
Jittering was caused by homography not being estimated accurate enough. Before this, only algebraic estimation was used, which is indeed not so much great, Now use algebraic estimation followed with refinement step using Ceres minimizer. The code was already there since keyframe selection patch, made such estimation a generic function in multiview/ and changed API for estimation in order to pass all additional options via an options structure (the same way as it's done fr Ceres). This includes changes to both homography and fundamental estimation. TODO: - Need to document Ceres functors better. - Need to support homogeneous coordinates (currently only euclidean coords are supported).
2013-09-17Re-track the plane after clearing the keyframeSergey Sharybin
From the math point of view there're two cases: - Clearing the keyframe between two other ones. In this case tracker will first track plane from left keyframe to right one without doing any kind of blending. This will make plane stick to the actual plane motion, but lead to possible jump at the right keyframe. Second step is to track from the right keyframe to the left one with blending. This gives nice transition at the point of second keyframe and this mimics situation when you've been setting keyframes from left to right. - Clearing left-most/right-most keyframe. In this case it's enough to only re-track the plane without blending from the neighbor keyframe without blending.
2013-09-12code cleanup: set enums as static or add RNA_enum_types.h where they are ↵Campbell Barton
used elsewhere. also minor style cleanup.
2013-09-10Tweaks to plane trackSergey Sharybin
- Do plane re-evaluation only when transform is actually done. Before this re-evaluation happened on every mouse move. - Added a flag "Auto Keyframe" for the plane track, which does: * If Auto Keyframe is enabled, then every manual edit of the plane will create a new keyframe at current frame and update plane motion between current frame and previous/next keyframe. This now also implies blending detected motion with neighbor keyframes, so there's no jump happening. No automatic update on manual point tracks edit will happen. * If auto Keyframe is disabled, then no keyframes are adding to the plane and every plane tweak will re-evaluate in on the whole frame range. In this case manual tweaks to point tracks and re-tracking them implies plane re-evaluation.