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
2012-11-05Fix/workaround for carve aborts on windowsSergey Sharybin
The issue was caused by passing start iterator larger than end iterator to std::copy in triangulation module. It'll do nothing on linux but will throw an exception on windows. Now behavior will be identical on both platforms. Proper solution would be to figure out why exactly this happened, but it's easier to be forwarded to Tobias and we'll need to get rid of triangulation anyway. This should solve issues: #30100: boolean intersect crashes blender #33001: Crash on applying Boolean difference modifier #33045: Boolean modifier crash with mirrored objects
2012-11-05Camera Tracking: allow fallback to reprojection resection by user demandSergey Sharybin
This fixes some "regressions" introduced in rev50781 which lead to much worse solution in some cases. Now it's possible to bring old behavior back. Perhaps it's more like temporal solution for time being smarter solution is found. But finding such a solution isn't so fast, so let's bring manual control over reprojection usage. But anyway, imo it's now nice to have a structure which could be used to pass different settings to the solver.
2012-10-24Patch Bullet to make it's convex hull implementation usable in BMeshNicholas Bishop
* Add access to the original indices for vertices * Add a very simple C API for convex hull * Add this patch to the patches folder and update readme.txt
2012-10-20style cleanupCampbell Barton
2012-10-17code cleanup:Campbell Barton
- move object_iterators.c --> view3d_iterators. (ED_object.h had to include ED_view3d.h which isn't so nice) - move projection functions from view3d_view.c --> view3d_project.c (view3d_view was becoming a mishmash of utility functions and operators). - some some cmake includes as system-includes.
2012-10-15Update to stable Eigen 3.1.1Daniel Genrich
- Fixes several bugs within the Eigen library: http://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.1.1
2012-10-14code cleanup: remove redundant castsCampbell Barton
2012-10-02correct some include dirs not being included as SYSTEM paths in cmake.Campbell Barton
2012-09-20Make Euclidean resection "always" succeed.Keir Mierle
The Euclidean resection code had a magical constant, 1e-3, used to compare the results of solving an equation. This failure detection was well-intended, trying to prevent poor solutions from getting made without notifying the caller. Unfortunately in practice, this threshold is too conservative. Furthermore, it is not clear the threshold should exist at all; the purpose of the Euclidean resection is to come up with the best solution it can; other methods (e.g. reprojection error) should be used to compare whether the method succeeded. This commit changes the Euclidean EPnP code to always succeed, causing the previous fallback to projective resection to never run. In most cases, this will result in better reconstructions. This should, in most cases, fix the dreaded "flipping" problem.
2012-09-20Fix variable naming in the planar tracker.Keir Mierle
2012-09-20Add smarter tolerance checking in the planar tracker.Keir Mierle
The planar tracker uses Ceres for the refinement stage. During refinement, Ceres iteratively updates the parameters with the latest best guess. If the change in the parameters falls below a threshold, Ceres will abort successfully ("converged"). For the case of pure translation tracking, the parameters are exactly the two pixel shifts (dx, dy), and measuring the change in these parameters gives a meaningful termination criterion. However, for all the other parameterizations like affine, where the parameterization involves affine parameters that have no physical interpretation, Ceres is left with no way to terminate the solver early. With the existing code, often many iterations are run long after Ceres has found a solution sufficiently accurate for all tracking needs. No one needs tracking with a quadrillionth of a pixel accuracy; that time is wasted. This patch extends the existing iteration callback that is passed in to Ceres to check if the pattern has fallen out of the search window, to also check if the optimizer has made a tiny step. In particular, if the maximum shift of any patch corner between two successful optimizer steps is less than a threshold (currently 0.005 pixels), the track is declared successful and tracking is terminated. This leads to dramatic speed increases in some cases, with little to no loss in track quality. This is especially apparent when tracking patches with affine or perspective motion models. For example, on some tracking cases I tried, the iterations Ceres took went from 50 to 3.
2012-09-20Detect too-small planar tracking patches.Keir Mierle
The planar tracker did not detect very skinny patches which have effectively zero area and are untrackable. This adds detection and rejection of patterns with zero area. This fixes a crash found by during Mango production.
2012-09-20Cleanup for when trackers fall out of the search window.Keir Mierle
Sergey originally left a TODO() here, but his fix is the correct one. I removed the TODO and fixed some comment issues.
2012-09-19Fix crash when tracking in planar motion model (and maybe some other)Sergey Sharybin
It was an Abort() caused by check for solver result not equal to USER_ABORT. In some cases solver returns USER_ABORT due to BoundaryCheckingCallback detects coordinates does not belong to image. Somehow this callback wasn't called in previous version of Ceres and in the same case marker was jumping. Now when the callback is called it seems we could simply return failure of tracking without aborting Blender. Probably this is in fact some issue somewhere else, would double check with Keir about this.
2012-09-18Ceres: resolve no previous declarations warningsSergey Sharybin
Currently done as patch applied on bundling, would forward it to Ceres developers.
2012-09-18Libmv: resolved some compilation warnings (missed prototypes)Sergey Sharybin
In some cases it was missed include of header file, in some other cases symbol could be static.
2012-09-18Libmv: fixed wrong function prototypesSergey Sharybin
Also mark non-public functions as static.
2012-09-17code cleanup: correct include paths and commentCampbell Barton
2012-09-16Real fix for OSX CMake -- was a typo in build file generation fileSergey Sharybin
Now Ceres re-bundling should go smooth :)
2012-09-16Fix OSX compileJens Verwiebe
2012-09-16Fix typo in one of previous commitsSergey Sharybin
2012-09-16Ceres: tweak namespace for hash classes for MSVC2010Sergey Sharybin
Not sure if it'll solve all issues, but at least it should reduce amount of errors. Also added missed patch from previous commit.
2012-09-16Ceres: reshuffle include order to solve compilation error with MSVCSergey Sharybin
Not sure why exactly this happens, would need extra investigation and should probably be also fixed in upstream.
2012-09-16Libmv: remove unwind hack from CMake rules.Sergey Sharybin
Such stuff better be solved in glog itself. Should be pretty safe change since it was defined for CMake only and AFAIR Jens wanted to get rid of this too.
2012-09-16Ceres: upgrade to version 1.3.0Sergey Sharybin
This should contain real fixes for Windows, making it more robost and hopefully faster (due to proper collection port) on that platform. Also hack to fix Eigen alignment shouldn't be needed anymore. Also on platforms which have got broken TR1 collections it's better to define CERES_NO_TR1 instead of using Boost hacks. Made changes to Scons and CMake, but can not check if this indeed works since i don't have OSX here.
2012-09-16Ceres: remove debug-only code from bundling script, also move osx workaround ↵Sergey Sharybin
to template
2012-09-11Fix libmv build on OS X with 10.5 SDK. The tr1::unordered_map implementationBrecht Van Lommel
is broken in this SDK, now it uses the boost implementation instead.
2012-09-05add missing files from cmakes listsCampbell Barton
2012-08-25style cleanup: also spellingCampbell Barton
2012-08-02Remove old boolean operation moduleSergey Sharybin
Carve proved it's a way to go, so the time have came to get rid of old boolean operation module which isn't used anymore. Still kept BOP interface but move it to BSP module. At some point it could be cleaned up further (like perhaps removed extra abstraction level or so) but would be nice to combine such a refactor with making BSP aware of NGons. Tested on linux using both cmake and scons, possible regressions on windows/osx. Would check windoes build just after commit.
2012-08-01Code cleanup: silence some -Wnarrowing warnings from C++11Sergey Sharybin
2012-07-30Fixing [#32210] "Character physics type colliding with sensor type" reported ↵Mitchell Stokes
by Daniel Stokes (kupoman) by applying a patch found in this Bullet bug report: https://code.google.com/p/bullet/issues/detail?id=525
2012-07-29code cleanup:Campbell Barton
- building without python works again - rename maxi/mini to i_max/i_min (so thay are available for function names) - some minor edits to IK stretch setting (no functional changes).
2012-07-27Fix compile errors on VC++ 2012 RC1.Daniel Genrich
Note: Compile still fails during ceres compile (namespace tr1 problems).
2012-07-04fix for carve memory leak, update carve to hg bf36d92ff093Campbell Barton
reported: http://code.google.com/p/carve/issues/detail?id=33
2012-06-23add cmake option WITH_SYSTEM_OPENJPEG so linux can build cycles without ↵Campbell Barton
having libopenjpeg installed.
2012-06-23rename WITH_BUILTIN_GLEW, WITH_SYSTEM_GLEW & negate.Campbell Barton
2012-06-21update libopenjpeg from 1.3 to 1.5, since 1.3 has a bug saving alpha channels.Campbell Barton
the patches/ dir is NOT applied but perhaps we can get OSX and BSD working using the opj_config.h
2012-06-17style cleanup:Campbell Barton
also fix for building ghost test and fix double free in one of the tests
2012-06-14Disable fixed-sized specializations for schur solverSergey Sharybin
As far as i remember Keir, this should be safe for our usages of ceres and it should save noticeable amount of time and used memory when compiling blender with libmv support. Quick tests with tracking went smooth after this.
2012-06-14quiet compiler warningCampbell Barton
2012-06-12Masking support for motion tracksSergey Sharybin
Added option to use Grease Pencil datablock as a mask for pattern when doing motion tracking. Option could be found in Tracking Settings panel. All strokes would be rasterized separately from each other and every stroke is treating as a closed spline. Also added option to apply a mask on track preview which is situated just after B/B/W channel button under track preview.
2012-06-11Fix compilation of new tracker for MinGW/MinGW64Antony Riakiotakis
2012-06-11Scale search area when doing planar trackingSergey Sharybin
Helps keeping features tracked when there's large scale happens without need to manually re-adjust search area. Currently using factor of pattern's boundbox scale, but probably could be done in more accurate way?
2012-06-11SVN maintenance.Guillermo S. Romero
2012-06-10Commit patch from Stephan Kassemeyer sent to MLSergey Sharybin
This patch aims to solve unaligned operation assert happens in Eigen library. This is short-term solution which in fact shall be reverted as soon as real solution would be added to Ceres. Meanwhile this should be acceptable to have for a while.
2012-06-10Planar tracking support for motion trackingSergey Sharybin
=========================================== Major list of changes done in tomato branch: - Add a planar tracking implementation to libmv This adds a new planar tracking implementation to libmv. The tracker is based on Ceres[1], the new nonlinear minimizer that myself and Sameer released from Google as open source. Since the motion model is more involved, the interface is different than the RegionTracker interface used previously in Blender. The start of a C API in libmv-capi.{cpp,h} is also included. - Migrate from pat_{min,max} for markers to 4 corners representation Convert markers in the movie clip editor / 2D tracker from using pat_min and pat_max notation to using the a more general, 4-corner representation. There is still considerable porting work to do; in particular sliding from preview widget does not work correct for rotated markers. All other areas should be ported to new representation: * Added support of sliding individual corners. LMB slide + Ctrl would scale the whole pattern * S would scale the whole marker, S-S would scale pattern only * Added support of marker's rotation which is currently rotates only patterns around their centers or all markers around median, Rotation or other non-translation/scaling transformation of search area doesn't make sense. * Track Preview widget would display transformed pattern which libmv actually operates with. - "Efficient Second-order Minimization" for the planar tracker This implements the "Efficient Second-order Minimization" scheme, as supported by the existing translation tracker. This increases the amount of per-iteration work, but decreases the number of iterations required to converge and also increases the size of the basin of attraction for the optimization. - Remove the use of the legacy RegionTracker API from Blender, and replaces it with the new TrackRegion API. This also adds several features to the planar tracker in libmv: * Do a brute-force initialization of tracking similar to "Hybrid" mode in the stable release, but using all floats. This is slower but more accurate. It is still necessary to evaluate if the performance loss is worth it. In particular, this change is necessary to support high bit depth imagery. * Add support for masks over the search window. This is a step towards supporting user-defined tracker masks. The tracker masks will make it easy for users to make a mask for e.g. a ball. Not exposed into interface yet/ * Add Pearson product moment correlation coefficient checking (aka "Correlation" in the UI. This causes tracking failure if the tracked patch is not linearly related to the template. * Add support for warping a few points in addition to the supplied points. This is useful because the tracking code deliberately does not expose the underlying warp representation. Instead, warps are specified in an aparametric way via the correspondences. - Replace the old style tracker configuration panel with the new planar tracking panel. From a users perspective, this means: * The old "tracking algorithm" picker is gone. There is only 1 algorithm now. We may revisit this later, but I would much prefer to have only 1 algorithm. So far no optimization work has been done so the speed is not there yet. * There is now a dropdown to select the motion model. Choices: * Translation * Translation, rotation * Translation, scale * Translation, rotation, scale * Affine * Perspective * The old "Hybrid" mode is gone; instead there is a toggle to enable or disable translation-only tracker initialization. This is the equivalent of the hyrbid mode before, but rewritten to work with the new planar tracking modes. * The pyramid levels setting is gone. At a future date, the planar tracker will decide to use pyramids or not automatically. The pyramid setting was ultimately a mistake; with the brute force initialization it is unnecessary. - Add light-normalized tracking Added the ability to normalize patterns by their average value while tracking, to make them invariant to global illumination changes. Additional details could be found at wiki page [2] [1] http://code.google.com/p/ceres-solver [2] http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Motion_Tracker
2012-06-10Initial Ceres integration into BlenderSergey Sharybin
Currently only put sources of Ceres library into extern/libmv/third_party and setup CMake and SCons building systems. Integration details: - Even CMake build files are not re-used from Ceres's trunk: they're using some automatic stuff detection like glog, pthreads, protobuf and so and it's not so clear how to re-use that files without modifications. And IMO it's easier if build files are getting re-generated automatically to match Blender-specific setup rather than keeping changes made locally in Blender in sync when re-bundling Ceres library. Especially in case when it's already needed to support SCons build system. - Integrated only actual sources, all tests were stripped. Probably it'll be nice to have them, but they'll need clear integration with current module test stuff in Blender. - Suitesparse was disabled. It'll help a lot having it, but there are some difficulties making cholmod working fine on windows. Would be added in future - collections_port.cc was also stripped. It's not used by Ceres's upstream and it gives compilation error (undefined uint32 -- looks like namespace issue). - Currently all schur eliminators are included. Not sure if it makes sense, also not sure if it makes sense having them switchable on and off -- IMO better to have single configuration which works and does not require special tweaks after everything was set up. To bundle updated version of Ceres: - Go to extern/libmv/third_party/ceres folder - Run ./bundle.sh This will checkout fresh Ceres snapshot of Windows branch (which is currently most interesting from integration into Blender POV), apply all patches listed in patches/series and copy needed files into Blender's working copy. This will also re-generate CMake/SCons build rules. If you'll need extra files from Ceres repository which are not present in Blender, you'll need to copy them manually and then run ./mkfiles.sh from extern/libmv/third_party/ceres folder which will update list of files used by Blender. Thanks to Leir Mierle and Sameer Agarwal (and all others who helped developing Ceres) this library and thanks to Keir Mierle with help integrating it into Blender!
2012-06-08Update Bullet to version 2.80 (bullet svn revision 2537)Sergej Reich
Remove Jamfiles and other unused files that stuck around during previous updates. Add patches for local changes to the patches directory. Update readme.txt, it had outdated infromation.
2012-05-29BGE patch #28476: Character object physics typeBenoit Bolsee
=============================================== This patch adds a new "Character" BGE physics type which uses Bullet's btKinematicCharacter for simulation instead of full-blown dynamics. It is appropiate for (player-controlled) characters, for which the other physics types often result unexpected results (bouncing off walls, sliding etc.) and for which simple kinematics offers much more precision. "Character" can be chosen like any other physics type in the "Physics" section of the properties window. Current settings for tweaking are "Step Height" (to make the object automatically climb small steps if it collides with them), "Fall Speed" (the maximum speed that the object can have when falling) and "Jump Speed", which is currently not used. See http://projects.blender.org/tracker/?func=detail&atid=127&aid=28476&group_id=9 for sample blends and a discussion on the patch: how to use it and what influences the behavior of the character object. Known problem: there is a crash if the "compound" option is set in the physics panel of the Character object.