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-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.
2013-05-09Reconstructed scene scale ambiguity improvementSergey Sharybin
Made it so reconstructed scene always scaled in a way that variance of camera centers is unity. This solves "issues" when different keyframes will give the same reprojection error but will give scenes with different.scale, which could easily have been considered as a bad keyframe combination. This change is essential for automatic keyframe selection algorithm to work reliable for user.
2013-05-07bullet: Don't use sse in api for windows.Sergej Reich
Remove stray BT_USE_SSE_IN_API definitions. Was causing problems especially for 32 bit windows. It's not quite clear why they were added in the first place since this should be defined in btScalar.h, needs further investigation. Thanks to Francisco De La Cruz (xercesblue) for looking into this. Should fix [#35071] Bullet Convex Hull Crashes on Win32 with SSE
2013-04-29bullet: Fix avoiding collision response between static/kinematic objectsSergej Reich
Sent patch upstream. Fixes [#35115] Character physics type fails collision with static type with an action on 2.67 rc
2013-04-26Revert 56319, misunderstood APISergey Sharybin
This was completely skipping BA step when point goes behind the camera.
2013-04-26Fix for BA possible move bundles behind the cameraSergey Sharybin
In some cases (was noticed on not good enough keyframe pair) bundle adjuster could have moved bundles behind the camera. This could indeed lead to lower rewprojection error but this is just pointless thing to do. Now added check to residuals functor which will return false to Ceres in cases point moved behind the camera to prevent such issues.
2013-04-22Update Ceres to current upstream versionSergey Sharybin
This brings a fixes for threading issue in BLAS making BA step more robust (there were some in-detemrinacy caused by this threading issue). Also brings some optimizations, which does not directly affect on blender.
2013-04-15Make it so FATAL messages from libmv are print to the consoleSergey Sharybin
even when --debug-libmv is not passed via command line.
2013-04-15Fix for bundle adjusting with motion restrictedSergey Sharybin
This commit bundles new libmv version from own branch which brings fix for wrong parameter block used for modal solver parameterization. Fixes #34985: Crash with Motion tracker (Tripod Motion)
2013-04-08Bundle adjustment improvementsSergey Sharybin
- Get rid of rotation matrix parameterization, use angle-axis instead. Also Joined rotation and translation into a single parameter block. This made minimization go significantly faster, like 1.3x times in average. - Fix first camera when bundling. This is to address orientation ambiguity. Reconstruction result could still vary in size, but that's another issue to be addressed later. Additional change: Split EuclideanBundleCommonIntrinsics into smaller functions, so it's now a bit easier to follow.
2013-04-08Update ceres to current upstream versionSergey Sharybin
Brings fixes for BLAS.
2013-04-06Revert change made to bilinear sampler in libmvSergey Sharybin
This made preview working but that broke internals of tracking. Namely, BlurredImageAndDerivativesChannels is giving much more blurred image because it was assuming pixel center is an integer position. Guess other parts of libmv used to suffer because of this issue. Now pixel centering happens in blender side, and libmv assumes integer position is a pixel center.
2013-04-05Update libmv to current upstream versionSergey Sharybin
- Solves some strict compilation warning - Style/code cleanup
2013-04-05Bundle current master of ceres-solverSergey Sharybin
Thins brings up some speed improvements: SPARSE_SCHUR is approx 1.3-1.5x times faster ITERATIVE_SCHUR is approx 1.2x times faster For blender this means camera solution go a bit faster now. Would not have affect on tracking speed.
2013-03-29misc minor edits.Campbell Barton
- pass string size to BLI_timestr() to avoid possible buffer overrun. - quiet warning for mingw. - include guards for windows utf conversion funcs. - fix for mistage in edge-angle-selection check. - some style cleanup.
2013-03-21Update ceres to current git version.Sergey Sharybin
Mainly to support msvc2010, bit also includes some minor fixes.
2013-03-21Fix #34707: Blender crash on enabling of boolean modifierSergey Sharybin
Stupid mistake by my own with recent Carve update which undid fix for MSVC STL library.
2013-03-21code cleanup: misc warnings/styleCampbell Barton
2013-03-15Multi-threaded frame calculation for movie clip proxiesSergey Sharybin
This commit implements multi-threaded calculation of frames when building proxies. Both scaling and undistortion steps are now threaded. Frames and proxy resolution are still handled one-by-one, saving files after every single step. So if HDD is not so fast, this commit could have not so much benefit. Internal changes: - Added IMB_scaleImBuf_threaded which scales given image buffer in multiple threads and uses bilinear filtering. - libmv's camera intrinsics now have SetThreads() method which is used to specify how many OpenMP threads to use for buffer distortion/undistortion. And yeah, this code is using OpenMP for threading. - Reshuffled a bit libmv-capi calls and added function BKE_tracking_distortion_set_threads to specify number of threads used by intrinscis.
2013-03-12Patch [#34373] Use i18n monospace font in Text editor and Python consoleIrie Shinsuke
This patch allows Blender to display i18n monospace font in the text editor and the Python interactive console. Wide characters that occupy multiple columns such as CJK characters can be displayed correctly. Furthermore, wrapping, selection, suggestion, cursor drawing, and syntax highlighting should work. Also fixes a bug [#34543]: In Text Editor false color in comment on cyrillic To estimate how many columns each character occupies, this patch uses wcwidth.c written by Markus Kuhn and distributed under MIT-style license: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c wcwidth.c is stored in extern/wcwidth and used as a static library. This patch adds new API to blenfont, blenlib and blenkernel: BLF_get_unifont_mono() BLF_free_unifont_mono() BLF_draw_mono() BLI_wcwidth() BLI_wcswidth() BLI_str_utf8_char_width() BLI_str_utf8_char_width_safe() txt_utf8_offset_to_column() txt_utf8_column_to_offset()
2013-03-08OSX/gcc-4.6: workaround a compilerbug, use apple-gcc insteadJens Verwiebe
2013-03-07bullet: Update to current svn, r2636Sergej Reich
Apply patches in patches directory, remove patches that were applied upstream. If you made changes without adding a patch, please check. Fixes [#32233] exporting bullet format results in corrupt files.
2013-03-05Switch from DENSE_NORMAL_CHOLESKY to DENSE_QRSergey Sharybin
DENSE_QR is better behaved numerically and after recent changes from Sameer there's no big difference in speed.
2013-03-05Update Ceres to 1.5RC3Sergey Sharybin
It brings optimization of DENSE_QR and DENSE_SCHUR solvers.
2013-03-01Updates to libmv's bundle.sh to make sure libmv upstreamSergey Sharybin
is copying properly to our sources.
2013-03-01Hrm, gcc became broken after recent commit.Sergey Sharybin
Hope now gcc and 32bit msvc would both work.
2013-03-01Pass data to modal reprojection cost functor by referenceSergey Sharybin
Seems it solves alignment error reported by 32bit MSVC.
2013-02-28Header cleanup in libmv c-apiSergey Sharybin
2013-02-28This lines are also not so much useful for now.Sergey Sharybin
2013-02-28Remove unused rigid registration codeSergey Sharybin
There're some features planned which would require rigid registration, but this code would need to be re-done anyway to use new minimizer and solving some issues with ICP algorithm there.
2013-02-28Modal (aka tripod) solver reworkSergey Sharybin
Several major things are done in this commit: - First of all, logic of modal solver was changed. We do not rely on only minimizer to take care of guessing rotation for frame, but we're using analytical rotation computation for point clouds to obtain initial rotation. Then this rotation is being refined using Ceres minimizer and now instead of minimizing average distance between points of point of two clouds, minimization of reprojection error of point cloud onto frame happens. This gives quite a bit of precision improvement. - Second bigger improvement here is using bundle adjustment for a result of first step when we're only estimating rotation between neighbor images and reprojecting markers. This averages error across the image sequence avoiding error accumulation. Also, this will tweak bundles themselves a bit for better match. - And last bigger improvement here is support of camera intrinsics refirenment. This allowed to significantly improve solution for real-life footage and results after such refining are much more usable than it were before. Thanks to Keir for the help and code review.
2013-02-28Increase verbosity level for reprojected markers infoSergey Sharybin
This information is useful, but in cases when you, say, working on a bundler it's annoying to scroll all the information up. Now behavior would be: - running `./blender --debug-libmv` will print all the debug messages - running `./blender --debug-libmv --verbose 0` will print only debug messages from solvers, recosntruction and so, but will bypass final reprojection bunch of messages - running `./blender --debug-lib,v --verbose 1` will include final reprojection messages.
2013-02-28Move radial distortion code to own templated functionSergey Sharybin
This shall not lead to any functional changes, just avoids radial distortion code duplicated in camera intrinsics and bundling code. For fancier bundle adjustment supprting different distortion models this is not actually enough and would need to make some bigger changes, but this changes makes code a bit easier to maintain already.
2013-02-26Use threaded cost function and jacobian computationSergey Sharybin
Also made it theraded linear solver, seems it makes sense for iterative schur with inner iterations enabled. Use OpenMO's max therads called from bundler code to detect how many threads to use. Could be changed in a way that number of threads is passing in options from blender side in the future. Also removed redundant V3D definition from compiler's flags.
2013-02-26Camera tracking: support refining radial K1, K2 onlySergey Sharybin
This commits adds extra refirenment entry in the menu which is "K1, K2" and which will apparently refine only this distortion coefficients. This would be useful in cases when you know for sure focal length (which could be obtained from lens, EXIF and so) but not sure about how good you manual calibration is. Be careful tho, there're no internal constraints on this coefficients so distortion model could just screw up into insane values.
2013-02-26Camera tracking: switch euclidean intersection code to use CeresSergey Sharybin
Would not expect any significant changes in solver behavior, but it could be more accurate in some cases. Switching projective intersection to ceres is marked as a TODO for now.
2013-02-26Bye-bye, SSBA!Sergey Sharybin
With new bundle adjustment based on Ceres we don't need SSBA library anymore. This also means we don't need ldl library and libmv is no longer depends on colamd as well.
2013-02-26Switch motion tracker bundle adjustment to Ceres.Keir Mierle
Patch originally written by me, then finished by Sergey. Big thanks to Sergey for troopering through and fixing the many issues with my original (not compilable) patch. The Ceres implementation uses 2 parameter blocks for each camera (1 for rotation and 1 for translation), 1 parameter block for common intrinsics (focal length etc) and 1 parameter block for each track (e.g. bundle or 3D point). We turn on some fancy optimizer options to get better performance, in particular: options.preconditioner_type = ceres::SCHUR_JACOBI; options.linear_solver_type = ceres::ITERATIVE_SCHUR; options.use_inner_iterations = true; options.use_nonmonotonic_steps = true; options.max_num_iterations = 100; Special thanks to Sameer Agarwal of Ceres fame for splitting out the SCHUR_JACOBI preconditioner so that it didn't depend on CHOLMOD. Previously we could not use that preconditioner in Blender because CHOLMOD is too large of a dependency for Blender. BundleIntrinsicsLogMessage: - Moved bunch of if(foo) LG << "bar" into this function, to make EuclideanBundleCommonIntrinsics a little bit easier to follow. EuclideanBundle: - Fix RMSE logging.