Commit Graph

27939 Commits

Author SHA1 Message Date
Sergey Sharybin
ec9ac9faba Object tracking: fix setting axis in cases when object is scaled 2011-12-05 20:07:13 +00:00
Sergey Sharybin
cbe9713b50 Object solver: minor tweaks
- Rename solving button to Object Motion if active tracking object isn't a camera
- Ignore refine flags when solving object
2011-12-05 19:31:21 +00:00
Sergey Sharybin
9355cc5c39 Object tracking; initial commit
This commit implements basis stuff needed for object tracking,
use case isn't perfect now, interface also should be cleaned a bit.

- Added list of objects to be tracked. Default there's only one object called
  "Camera" which is used for solving camera motion. Other objects can be added
  and each of them will have it;s own list of tracks. Only one object can be used
  for camera solving at this moment.
- Added new constraint called "Object Tracking" which makes oriented object be
  moving in the save way as solved object motion.
- Scene orientation tools can be used for orienting object to bundles.
- All tools which works with list of tracks or reconstruction data now
  gets that lists from active editing object.
- All objects and their tracking data are available via python api.
2011-12-05 18:57:17 +00:00
Sergey Sharybin
f55f9e95db Merging r42413 through r42441 form trunk into soc-2011-tomato 2011-12-05 18:53:09 +00:00
Brecht Van Lommel
c40d8921b8 Fix #28107: save screenshot operator option to save full screen or only a single
editor was not working. Solution is to take full screenshot and crop it on save.
Also fixed screenshot showing popup menu used to execute operator.
2011-12-05 16:37:31 +00:00
Brecht Van Lommel
72827ee531 Fix #29507: cycles rendering of metaball animations not working. 2011-12-05 15:57:57 +00:00
Thomas Dinges
a5434508ac Release Cycle:
* BCon4: Release candidate, important bug fixes only!
2011-12-05 15:32:17 +00:00
Miika Hamalainen
c9eb206c06 Fix: Dynamic Paint sub-steps didn't work for constraint controlled brush objects. 2011-12-05 13:36:41 +00:00
Campbell Barton
45c1ccd65b fix for dscale which was set to 0,0,0 from files saved between Nov 29 and Dec 4. 2011-12-05 11:02:54 +00:00
Sergey Sharybin
8582495c16 Minor whitespace fixes 2011-12-05 07:56:31 +00:00
Campbell Barton
eb233d9332 syncing some minor formatting edits from bmesh branch. 2011-12-04 23:04:43 +00:00
Campbell Barton
bf77a177d4 remove mesh PartialVisibility, it wasnt being version patches or used anywhere, other then save/load/free. 2011-12-04 19:49:35 +00:00
Sergey Sharybin
229dd30f37 Slight optimization of track preview widget (the same approach as in tomato branch) 2011-12-04 18:49:41 +00:00
Sergey Sharybin
9e51f4b943 Optimization of preview widget scaling.
Thanks to Campbell for pointing into issues.
2011-12-04 18:39:47 +00:00
Bastien Montagne
937c5494c4 A (hopefully last) bunch of fixes and tweaks to UI label and messages (found while translating in french). 2011-12-04 17:36:13 +00:00
Campbell Barton
143b7ec10a remove unused SpaceTime.redraws.
now there are no more use of deprecated struct member warnings.
2011-12-04 17:35:17 +00:00
Sergey Sharybin
756ac13e3a Merging r42394 through r42412 form trunk into soc-2011-tomato 2011-12-04 17:26:35 +00:00
Campbell Barton
f4eb0f507f #if 0 use of Object.nlastrips, there is no way to add or remove these from blender so better not run. 2011-12-04 17:24:34 +00:00
Sergey Sharybin
3eaf5e93fd Fix for movie clips weren't remapped properly on file save 2011-12-04 17:16:22 +00:00
Sergey Sharybin
17493c77f4 Fixed dark edges on preview widget sides: it was interpolating beyond the image bounds 2011-12-04 17:12:10 +00:00
Thomas Dinges
b550cd8c1e Fix [#29502] Brush texture Preview panel doesnt show Alpha checkbox
* Added to the py UI file, it would require some deeper changes to have it in the c Template, can be done later.
* Fixed a typo.
2011-12-04 16:55:46 +00:00
Campbell Barton
9c5ad4fb60 remove old renderer struct member, was only used for setting yafray but was still being checked in a few places, 2011-12-04 16:22:53 +00:00
Sergey Sharybin
5c82926f94 Use own bilinear interpolation function for preview widget sampling
Solves issue with image clamping, but issue with dark edge is still present
2011-12-04 16:07:50 +00:00
Campbell Barton
753bfe730a fix building on openbsd, also quiet some warnings. 2011-12-04 15:45:53 +00:00
Sergey Sharybin
af8587c6d6 Small code cleanup of tracking.c 2011-12-04 14:42:21 +00:00
Sergey Sharybin
f4b1c34ff0 Fix of pattern position clamping 2011-12-04 14:42:10 +00:00
Keir Mierle
5d6fff3c7b Remove an unused parameter from tracking.c 2011-12-04 14:08:21 +00:00
Keir Mierle
f1454ec399 Turn grayscale preview on if any channel toggles are active for motion tracking. 2011-12-04 13:58:40 +00:00
Keir Mierle
4bd3a296bb Add support for detecting tracking failure in the ESM tracker component of
libmv. Since both KLT and Hybrid rely on ESM underneath, KLT and Hybrid now
have a minimum correlation setting to match. With this fix, track failures
should get detected quicker, with the issue that sometimes the tracker will
give up too easily. That is fixable by reducing the required correlation (in
the track properties).
2011-12-04 13:46:25 +00:00
Sergey Sharybin
d261623800 Camera tracking: merge hybrid tracker from tomato branch
Comment from Keir's commit:

Add a new hybrid region tracker for motion tracking to libmv, and
add it as an option (under "Hybrid") in the tracking settings. The
region tracker is a combination of brute force tracking for coarse
alignment, then refinement with the ESM/KLT algorithm already in
libmv that gives excellent subpixel precision (typically 1/50'th
of a pixel)

This also adds a new "brute force" region tracker which does a
brute force search through every pixel position in the destination
for the pattern in the first frame. It leverages SSE if available,
similar to the SAD tracker, to do this quickly. Currently it does
some unnecessary conversions to/from floating point that will get
fixed later.

The hybrid tracker glues the two trackers (brute & ESM) together
to get an overall better tracker. The algorithm is simple:

1. Track from frame 1 to frame 2 with the brute force tracker.
   This tries every possible pixel position for the pattern from
   frame 1 in frame 2. The position with the smallest
   sum-of-absolute-differences is chosen. By definition, this
   position is only accurate up to 1 pixel or so.
2. Using the result from 1, initialize a track with ESM. This does
   a least-squares fit with subpixel precision.
3. If the ESM shift was more than 2 pixels, report failure.
4. If the ESM track shifted less than 2 pixels, then the track is
   good and we're done. The rationale here is that if the
   refinement stage shifts more than 1 pixel, then the brute force
   result likely found some random position that's not a good fit.

svn command used: svn merge -r 42375:42376 -r 42377:42379 ^/branches/soc-2011-tomato
2011-12-04 13:26:11 +00:00
Keir Mierle
d00bb6dd56 Add a toggle button to display motion tracker previews in grayscale. 2011-12-04 12:58:31 +00:00
Sergey Sharybin
4e0b4de0bf Merging r42350 through r42393 from trunk into soc-2011-tomato 2011-12-04 12:32:26 +00:00
Sergey Sharybin
bb81c03e39 Revert "Fix a segfault in the tracker caused by attempting a one-frame track after the active tracker has become disabled."
BKE_tracking_next shouldn't be called if there's nothing to track.
Fixed in trunk, would be fixed here after upcoming merge.
2011-12-04 12:06:01 +00:00
Sergey Sharybin
458ecaebf4 Do not clamp search size when adding new track with non-klt tracker set 2011-12-04 11:57:23 +00:00
Sergey Sharybin
bd9583a1d4 Fix crash when trying to track disabled track.
This is possible fixes #29498: Seg fault on trying to track byond clip length
2011-12-04 10:57:36 +00:00
Campbell Barton
cbd5b492b1 remove use of deprecated struct members
- editmesh smooth & subdivide were using old mirror axis flag still.
- removed colbits from outliner and object code.
- commented some other parts of the code which access deprecated members and aren't called anywhere.
2011-12-04 06:39:35 +00:00
Campbell Barton
31ff21d735 add define for deprecated DNA struct members: DNA_DEPRECATED,
this means use of deprecated struct members gives a warning.

- makesdna.c preprocessor skips this.
- DNA_DEPRECATED_ALLOW is used so readfile.c can do versioning without warnings.
- this exposes some use of deprecated struct members, will deal with this after.
2011-12-04 06:05:48 +00:00
Keir Mierle
3113fff5ed Make the tracker preview in the motion tracking panel show exactly what the
tracking algorithm will see when any of the R/G/B channels are disabled, rather
than the RGB view that was there previously.
2011-12-04 06:02:09 +00:00
Keir Mierle
7f46db1ecc Fix a segfault in the tracker caused by attempting a one-frame track after the active tracker has become disabled. 2011-12-04 04:51:30 +00:00
Keir Mierle
50d440504c Switch the tracker preview area to use bilinear filtering instead of nearest
neighbour. This makes it easier to align tracks.
2011-12-04 04:33:06 +00:00
Campbell Barton
3fdc28b736 add a new object member to store the dsize, since with my recent commit broke forward compatibility. now the new values are copied into 'dscale' and existing ones remain.
this is annoying since now we have dsize and dscale, will look into a way to deprecate struct members next.
2011-12-04 03:35:54 +00:00
Dalai Felinto
d15c5e51a1 Invert Color Cycles Node
as with the HSV node the OSL code is relying on the (yet to be implemented) autorename.

Also the svm code could use mix (svm_lerp) instead:
 32 . float3 color_inv = make_float3(1.0f, 1.0f, 1.0f) - color;
 35 . . stack_store_float3(stack, out_color, svm_lerp(color_inv, color, factor));

I have a feeling that each node 'program' should have the least program as possible. I'll see with Brecht later.
But overall I don't know if that's any fast. And apart from that I think we will need this kind of function to move to a library if multiple functions linked in are not a problem.
2011-12-03 23:05:35 +00:00
Keir Mierle
232248d2e0 Add a new hybrid region tracker for motion tracking to libmv, and
add it as an option (under "Hybrid") in the tracking settings. The
region tracker is a combination of brute force tracking for coarse
alignment, then refinement with the ESM/KLT algorithm already in
libmv that gives excellent subpixel precision (typically 1/50'th
of a pixel)

This also adds a new "brute force" region tracker which does a
brute force search through every pixel position in the destination
for the pattern in the first frame. It leverages SSE if available,
similar to the SAD tracker, to do this quickly. Currently it does
some unnecessary conversions to/from floating point that will get
fixed later.

The hybrid tracker glues the two trackers (brute & ESM) together
to get an overall better tracker. The algorithm is simple:

1. Track from frame 1 to frame 2 with the brute force tracker.
   This tries every possible pixel position for the pattern from
   frame 1 in frame 2. The position with the smallest
   sum-of-absolute-differences is chosen. By definition, this
   position is only accurate up to 1 pixel or so.
2. Using the result from 1, initialize a track with ESM. This does
   a least-squares fit with subpixel precision.
3. If the ESM shift was more than 2 pixels, report failure.
4. If the ESM track shifted less than 2 pixels, then the track is
   good and we're done. The rationale here is that if the
   refinement stage shifts more than 1 pixel, then the brute force
   result likely found some random position that's not a good fit.
2011-12-03 22:27:32 +00:00
Campbell Barton
7691e05e40 flush selected vertices when switching from vertex weight paint mode to editmode (as is done with faces).
note - a limitation with mode changing means this isnt used yet with toggling.
2011-12-03 22:15:13 +00:00
Campbell Barton
03b807e7dc shorten very long lines in drawobject.c, (no functional changes) 2011-12-03 20:49:41 +00:00
Campbell Barton
f0b3ec33f6 fix for weight paint mode drawing selected verts even when it wasnt the active object. 2011-12-03 20:26:53 +00:00
Brecht Van Lommel
4344d84c02 Fix #29483: edge slide gives nan when zoomed in close. Cause was integer
overflow leading to negative value for sqrt().
2011-12-03 13:16:32 +00:00
Campbell Barton
3167a9a899 add library support for rna collection __contains__, eg
("Cube", "//lib.blend") in bpy.data.objects
2011-12-03 06:10:32 +00:00
Campbell Barton
06c3d5bd09 de-duplicate dominant axis calculation, exact same checks were in 6 different places.
added function:  axis_dominant_v3(...)
2011-12-02 22:14:20 +00:00
Brecht Van Lommel
20620a988a Fix #27620: improve mesh deform error message when it fails to bind. 2011-12-02 21:10:29 +00:00