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
path: root/extern
AgeCommit message (Collapse)Author
2013-11-04bullet: Remove patch applied upstreamSergej Reich
2013-10-29Eagerly attempt to refine a track before doing a brute searchKeir Mierle
Before the refinement phase of tracking, a brute force SAD search is run across the search area. This works well but is slow; especially if the guess for the track's location is accurate. This patch runs a refinement phase before running a brute force search, hoping that the guessed position (in x2, y2) is close to the best answer. If it is, then no brute search is done. If it is not, then a normal brute force search followed by refinement is done. In some cases this may produce worse tracks than before; the regressions will need investigation. The predictive motion model (to be implemented) will reduce the probability of that happening.
2013-10-28Fix bug where libmv tracking incorrectly succeeds on failureKeir Mierle
Before this patch, if Ceres returned USER_SUCCESS indicating that Ceres was only changing the tracked quad slightly between iterations (indicating convergence), no final correlation check was done. This leads to incorrectly returning that the tracking was successful, when it actually failed.
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-25Fix building with sconsSergej Reich
Can't actually test here so hope this is enough.
2013-10-25bullet: Update to version 2.82 (bullet revision 2705)Sergej Reich
Remove patch that has been applied upstream. Fixes several bugs.
2013-10-15Code cleanup: move function prototype to header fileSergey 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-10-10Libmv: make sure CmakeList.txt is re-created with all needed headers on ↵Sergey Sharybin
re-bundle
2013-10-10Libmv: move platform-specific defines into own fileSergey Sharybin
2013-10-09Fix compilation error after recent libmv changeSergey Sharybin
- Tweaked typedefs in stdint so they match what we've got in BLI_sys_types (needed to explicitly tell sign to MSVC). Not so much harmful to be more explicit here, but we really better to have single stdint int blender. - Tweaked allocations macros so MSVC is happy with structures allocation.
2013-10-09Move guarded objetc allocation to a guardedalloc headerSergey Sharybin
Also made libmv-capi use guarded objetc allocation. Run into some suspecious cases when it was not so clear whether memory is being freed or not. Now we'll know for sure whether there're leaks or not :) Having this macros in a guardedalloc header helps using them in other areas (for now it's OCIO and libmv, but in the future it'll be more places).
2013-10-02libmv: fix matrix address being printed instead of actual valuesSergey Sharybin
2013-10-01Optimization for recent changes in keyframe selectionSergey Sharybin
2013-10-01Fix issues according to codereview pageSergey Sharybin
Mainly just a comment cleanups.
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-14Code cleanup: spelling correctionJoseph Mansfield
2013-09-13correct error in libmv stub, also correct typo.Campbell Barton
2013-09-09OSX/clang5: revert 59960, todo: make it global Jens Verwiebe
2013-09-09OSX/clang5: fix broken compilingJens Verwiebe
2013-09-09Code cleanup: Minor function capitalization fixJoseph Mansfield
2013-09-05Update Ceres to 1.7.0 releaseSergey Sharybin
For Blender this release is interesting because of: - Covariance estimation (not used in Blender yet, but now we might use it for keyframe selection instead of havingown implementation). - Significant performance improvements to loss function and dense linear solvers and automatic differentiation. Unfortunately, didn't notice speedup of tracking itself, but camera reconstruction now happens around 2 times faster on my laptop, - Better inner iteration step acceptance and stopping.
2013-08-19Use reentrant qsort() in particle codesSergey Sharybin
Particle system code used global variable to sort hair by orig index, which is not safe for threading at all. Replaced this with usage of reentrant version of qsort, which is now implemented in BLI. It was moved from recast navigation code to BLI, so more areas could use it (if needed). -- svn merge -r59086:59087 ^/branches/soc-2013-depsgraph_mt
2013-08-16* Compile fix, so disabling libmw works again. Thomas Dinges
2013-08-16Merge plane track feature from tomato branchSergey Sharybin
This commit includes all the changes made for plane tracker in tomato branch. Movie clip editor changes: - Artist might create a plane track out of multiple point tracks which belongs to the same track (minimum amount of point tracks is 4, maximum is not actually limited). When new plane track is added, it's getting "tracked" across all point tracks, which makes it stick to the same plane point tracks belong to. - After plane track was added, it need to be manually adjusted in a way it covers feature one might to mask/replace. General transform tools (G, R, S) or sliding corners with a mouse could be sued for this. Plane corner which corresponds to left bottom image corner has got X/Y axis on it (red is for X axis, green for Y). - Re-adjusting plane corners makes plane to be "re-tracked" for the frames sequence between current frame and next and previous keyframes. - Kayframes might be removed from the plane, using Shit-X (Marker Delete) operator. However, currently manual re-adjustment or "re-track" trigger is needed. Compositor changes: - Added new node called Plane Track Deform. - User selects which plane track to use (for this he need to select movie clip datablock, object and track names). - Node gets an image input, which need to be warped into the plane. - Node outputs: * Input image warped into the plane. * Plane, rasterized to a mask. Masking changes: - Mask points might be parented to a plane track, which makes this point deforming in a way as if it belongs to the tracked plane. Some video tutorials are available: - Coder video: http://www.youtube.com/watch?v=vISEwqNHqe4 - Artist video: https://vimeo.com/71727578 This is mine and Keir's holiday code project :)
2013-08-16Add Procrustes PNP ("PPnP") resection algorithm to libmvSergey Sharybin
This adds a new Euclidean resection method, used to create the initial reconstruction in the motion tracker, to libmv. The method is based on the Procrustes PNP algorithm (aka "PPnP"). Currently the algorithm is not connected with the motion tracker, but it will be eventually since it supports initialization. Having an initial guess when doing resection is important for ambiguous cases where potentially the user could offer extra guidance to the solver, in the form of "this point is in front of that point". -- svn merge -r58821:58822 ^/branches/soc-2011-tomato
2013-08-14Fix for uninitialized covariance matrixSergey Sharybin
This is likely a culptrit caused #36231: Motion tracker bug in 2.68
2013-08-01Potential fix for wrogn k3 value after solveSergey Sharybin
2013-07-31Code cleanup: libmv C APIJoseph Mansfield
Clean up inconsistencies in the libmv C API: - All type identifiers are libmv_TypeName - All function identifiers libmv_functionName - Prefer libmv_nounVerb function names (e.g. libmv_featuresDestroy) - Match Blender code formatting rather than Google - Spelling corrections Code review: https://codereview.appspot.com/11494044/
2013-07-15== libredcode / licence cleanup ==Peter Schlaile
Changed libredcode to GNU GPL v2 or later to make it more compatible with additional libraries added to blender.
2013-06-01Update libmv from own branchSergey Sharybin
Fixes compilation error on win32 and shall give few cpu ticks boost by passing vectors by reference rather than by value.
2013-05-30Fixed compilation error after recent keyframes commit.Sergey Sharybin
2013-05-30Remove files unused by blender's trackerSergey Sharybin
They were giving compilation error with msvc2012, and instead of having workaround in them let's drop them away form blender (they're not used even).
2013-05-30Motion tracking: automatic keyframe selectionSergey Sharybin
Implements an automatic keyframe selection algorithm which uses couple of approaches to find out best keyframes candidates: - First, slightly modifier Pollefeys's criteria is used, which limits correspondence ration from 80% to 100%. This allows to reject keyframe candidate early without doing heavy math in cases there're not much common features with first keyframe. - Second step is based on Geometric Robust Information Criteria (aka GRIC), which checks whether features motion between candidate keyframes is better defined by homography or fundamental matrices. To be a good keyframe candidate, fundamental matrix need to define motion better than homography (in this case F-GRIC will be smaller than H-GRIC). This two criteria are well described in this paper: http://www.cs.ait.ac.th/~mdailey/papers/Tahir-KeyFrame.pdf - Final step is based on estimating reconstruction error of a full-scene solution using candidate keyframes. This part is based on the following paper: ftp://ftp.tnt.uni-hannover.de/pub/papers/2004/ECCV2004-TTHBAW.pdf This step requires reconstruction using candidate keyframes and obtaining covariance matrix of 3D points positions. Reconstruction was done pretty much straightforward using other simple pipeline routines, and for covariance estimation pseudo-inverse of Hessian is used, which is in this case (J^T * J)+, where + denotes pseudo-inverse. Jacobian matrix is estimating using Ceres evaluate API. This is also crucial to get rid of possible gauge ambiguity, which is in our case made by zero-ing 7 (by gauge freedoms number) eigen values in pseudo-inverse. There're still room for improving and optimizing the code, but we need some point to start with anyway :) Thanks to Keir Mierle and Sameer Agarwal who assisted a lot to make this feature working.
2013-05-28move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)Campbell Barton
remove MEM_sys_types.h which was a duplicate.
2013-05-16quiet warnings from r56825Campbell Barton
- using vars before checking they are defined - /* within comment
2013-05-15Libmv internal compiler error workaround for VC2012.Jürgen Herrmann
Will be reverted as soon as the x64 compiler is fixed. For now it shouldn't have an impact on tracking performance. My test have shown no significant speed difference to official VC2008 build of 2.67.
2013-05-14update libmv stub.Campbell Barton
2013-05-13Cleanup and small improvements to libmvSergey Sharybin
- Added const modifiers where it makes sense and helps keep code safe. - Reshuffled argument to match <inputs>,<outputs> convention on parameters. - Pass values to ApplyRadialDistortionCameraIntrinsics by a constant reference. This will save lots of CPU ticks passing relatively heavy jet objects to this function when running bundle adjustment.
2013-05-13Headers cleanup.Sergey Sharybin
2013-05-13Forgot this in one of previous commitsSergey Sharybin
Idea here is to be able to have all files opened in IDE and not confuse it by the same function implemented in multiple files.
2013-05-13Compilation fix for recent commit.Sergey Sharybin
2013-05-13Remplace bunch of annoying ifdefs in tracking.c with a libmv-capi_stub.ccSergey Sharybin
Makes code in tracking.cc much easier to understand and modify, without worring to breck compulation with Libmv disabled. It is still possible compilation will break due to libmv-capi changes, but that's not happening so much often.
2013-05-12Update bundled version of libmvSergey Sharybin
- Ensures fix for msvc2012 is applying correct. - Some code cleanup to match libmv's code style. - Do not include points which were intersect behind the camera to a reconstruction. - Includes changes needed for keyframe selection.
2013-05-12Documentation for functions inside tracking.cSergey Sharybin
Additional changes: - Cleaned up sources to reduce mess in some big functions. - Removed unused function from libmv c-api. - Made functions naming more consistent. - Use bool for internal stuff in tracking.c. Shall be no functional changes :)
2013-05-11Fix libmv build with visual studio 2012.Brecht Van Lommel
Patch #35158 by Jurgen Herrmann.
2013-05-10Left extra logging print by accident.Sergey Sharybin
2013-05-10Remove check for zero focal length in BA cost functorSergey Sharybin
This check is actually redundant, because empty intrinsics will have focal length of 1.0, which means original comment about BundleIntrinsics was not truth. It is possible that external user will send focal length of zero to be refined, but blender prevents this from happening.
2013-05-10Synchronize changes between bunded libmv and own libmv branch.Sergey Sharybin
2013-05-09Add check for points behind camera in euclidan BA cost functorSergey Sharybin
In cases keyframes are no so good, algebraic two frames construction could produce result, for which more aggressive Ceres-based BA code will fall to a solution for which points goes behind the camera, which is not so nice. Seems in newer Ceres returning false from cost functor wouldn't abort solution, but will restrict solver from moving points behind the camera. Works fine in own tests, but requires more tests.