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
2020-12-03Tracking: Improve multithreading of tracking many markersSergey Sharybin
This change solves a bottleneck which was caused by attempt to cache postprocessed search areas used for tracking. It was a single cache used by all threads, which required to have some synchronization mechanism. This synchronization turned out to be making all threads to idle while one thread is accessing the cache. The access was not cheap, so the multi-threading did not provide expected speedup. Current solution is to remove the cache of search areas. This avoids any threading synchronization overhead because there is no need for it anymore. The downside is that for certain configurations tracking became slower when comparing to master branch. There is no expected slowdown compared to 2.91 release. The slowdown is mainly experienced when using big search area and keyframe matching strategy. Other cases should still be within a ballpark of performance of single-threaded code prior to this change. The reason why is it so is because while this change makes it so the image accessors needs to process images multiple times the complexity of this process is almost the same as all the overhead for the cache lookup and maintenance. Here are Some numbers gained on different configurations. CPU: Intel Xeom CPU E5-2699 v4 OS: Linux Footage: Old_Factory MVI_4005.mov from the first part of Track Match Blend training which can be found on the Blender Cloud. Tracking 443 markers across 250 frames. The unit is seconds. File: F9433209 2.91: 401.520874 before: 358.650055 after: 14.966302 Tracking single marker across 250 frames. The unit is seconds. File: F9433211 2.91 before after Big keyframe 1.307203 1.005324 1.227300 Big previous frame 1.144055 0.881139 0.944044 Small keyframe 0.434015 0.197760 0.224982 Small previous frame 0.463207 0.218058 0.234172 All at once 2.338268 1.481220 1.518060
2020-11-30Tracking: Make image accessor own what it needsSergey Sharybin
Previously image accessor was sharing array pointer for tracks access. Now it is possible to pass a temporary array valid only during the initialization process. Should be no functional changes.
2020-11-30Tracking: Cleanup, remove unused argument from image accessorSergey Sharybin
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-09-30Tracking: Implement Brown-Conrady distortion modelIvan Perevala
Implemented Brown-Conrady lens distortion model with 4 radial and 2 tangential coefficients to improve compatibility with other software, such as Agisoft Photoscan/Metashapes, 3DF Zephir, RealityCapture, Bentley ContextCapture, Alisevision Meshroom(opensource). Also older programs: Bundler, CPMVS. In general terms, most photogrammetric software. The new model is available under the distortion model menu in Lens settings. For tests and demos check the original patch. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9037
2020-05-20Cleanup: remove legacy mmap memory allocation for 32 bitBrecht Van Lommel
This helped to go beyond the 4GB limit, but is no longer relevant for 64 bit.
2020-04-29Tracking: Implement Nuke/Natron distortion modelSergey Sharybin
Neither Nuke nor Natron support OpenCV's radial distortion model which makes it impossible to have any kind of interoperability. The new model is available under the distortion model menu in Lens settings. Differential Revision: https://developer.blender.org/D7484
2020-04-09Tracking: Forward compatibility code for distortion modelsSergey Sharybin
Allows to open newer files in older Blender after new distortion model has been added. It will behave as if this is a polynomial model with all 0 coefficients which are then being refined and assigned explicitly after solving the motion.
2020-04-06Tracking: Fix (un)distortion happen in single threadSergey Sharybin
Need to communicate available number of threads to the camera intrinsics implementation, otherwise default value of 1 is used. Must have been single-threaded for a very long time.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-02-07Cleanup: Tracking, reduce scope of variablesSergey Sharybin
Mainly affects for() loops. The reason why loop parameter was declared outside of the loop roots back to the times when not all compilers supported C99.
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).
2019-04-22Cleanup: style, use braces for blenkernelCampbell Barton
2019-04-18Cleanup: add trailing commas to avoid right shiftCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2018-08-24Cleanup: indentation, styleCampbell Barton
2018-02-15Cleanup: rename BLI_thread.h APICampbell Barton
- Use BLI_threadpool_ prefix for (deprecated) thread/listbase API. - Use BLI_thread as prefix for other functions. See P614 to apply instead of manually resolving conflicts.
2017-08-21Fix T52479: Regression: Motion Tracking no longer worksSergey Sharybin
2017-08-14Fix T51850: Motion tracking - poor performance with keyframe matching on ↵Sergey Sharybin
large video Enabled cache for frame accessor and tweaked policy so we guarantee keyframed images to be always in the cache. The logic might fail in some real corner case (for example, when doing multiple tracks at once on a system where we can not fit 2 clip frames in cache) but things are much better now for regular use.
2017-08-14Tracking: Make frame accessor cache safe for threadingSergey Sharybin
2017-08-14Tracking: Cleanup, newlines and commentsSergey Sharybin
2017-08-14Tracking: Cleanup, de-duplicate codeSergey Sharybin
2017-08-14Trackign: Add some basic logging about caching in frame accessorSergey Sharybin
2017-08-14Tracking: Make frame access cache aware of regionSergey Sharybin
Cache is still kept disabled, need to think of a policy for cache cleanup.
2017-08-14Tracking: Correct comparison in cache keysSergey Sharybin
This code wasn't uses, but the key comparison was totally wrong.
2017-08-12Cleanup: whitespaceCampbell Barton
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-20Fix float buffer of tracking image accessed outside of check that it has ↵Bastien Montagne
been correctly allocated. Reported by coverity scan.
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-07-22fix null pointer dereferencesMike Erwin
Found with PVS-Studio T48917
2016-06-08Cleanup: typosCampbell Barton
2016-01-28Cleanup: warnings & styleCampbell Barton
2016-01-24Fix T47217: Crash when tracking specific sceneSergey Sharybin
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-03-27Tracking: Code cleanup, missing break statementsSergey Sharybin
2015-01-08GHash: use reinsert instead of remove/insertCampbell Barton
2014-11-02Cleanup: styleCampbell Barton
2014-10-30Libmv: Support disabled color channels in tracking settingsSergey Sharybin
This was never ported to a new tracking pipeline and now it's done using FrameAccessor::Transform routines. Quite striaghtforward, but i've changed order of grayscale conversion in blender side with call of transform callback. This way it's much easier to perform rescaling in libmv side.
2014-10-30Libmv: Replace region tracker with autotracker in BlenderSergey Sharybin
The title actually tells it all, this commit switches Blender to use the new autotrack API from Libmv. From the user point of view it means that prediction model is now used when tracking which gives really nice results. All the other changes are not really visible for users, those are just frame accessors, caches and so for the new API.
2014-05-14Code cleanup: doxy commentsCampbell Barton
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-02-13Fix race condition between tracking thread and tracks map syncSergey Sharybin
This might have been a reason of bug T38281.
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.