Use homography transformation for pattern displayed in track preview widget.
Sampling of this pattern happens to resolution of preview widget itself,
which implied some bigger changes in how scopes are working:
- Instead of real pattern store search area in BKE_movieclip_update_scopes,
which is later used for sampling pattern.
- Sampling of pattern happens in ui_draw_but_TRACKPREVIEW from search area
which allows to sample it to actual resolution of preview widget.
- If size of preview widget is not changing, this sampled pattern wouldn't
be re-sampled until scopes are tagged to update.
There are some issues with pattern sampling which seems to happen SamplePlanarPatch,
changing linear sampling to nearest removes that unwanted 1px offset.
Left commented saving of sampled image in ui_draw_but_TRACKPREVIEW which should
help figuring the issue out.
- Fixes the correlation checking code that was broken in the
previous commit. The bug was a transpose error.
- Fixes a memory leak of the warp functor, found by Sameer.
- Various cleanups done at Sameer's suggestion.
Thanks to Sameer Agarwal for a code review.
- This makes planar tracking around 2-3x or more faster than
before, by rearranging how the sampling is done.
Previously, the source patch was sampled repeatedly on
every optimizer iteration; this was done for
implementation speed, but was wasteful in computation.
- This also contains some additions to Ceres to help
deailing with mixed numeric / automatic differentation. In
particular, there is now a "Chain::Rule" operator that
facilitates calling a function that takes Jet arguments,
yet does numeric derivatives internally. This is used to
mix the numeric differentation of the images with the warp
parameters, passed as jets by Ceres to the warp functor.
There is also a new "JetOps" object for doing operations
on types which may or may not be jets, such as scaling
the derivative part only, or extracting the scalar part
of a jet.
The Ceres patches are aimed at upstream.
- A new function for sampling a patch is now part of the
track_region.h API; this will get used to make the preview
widget properly show what is getting tracked. Currently
the preview widget does not handle perspective tracks.
Known issues:
This patch introduces a bug such that the "Minimum
Correlation" flag does not work; if it is enabled, tracking
aborts immediately. The workaround for now is to disable the
correlation checking, and examine your tracks carefully. A
fix will get added shortly.
The particle data is stored in a separate texture if any of the dupli objects uses particle info nodes in shaders. To map dupli objects onto particles the store an additional particle_index value, which is different from the simple dupli object index (only visible particles, also works for particle dupli groups mode).
Some simple use cases on the code.blender.org blog:
http://code.blender.org/index.php/2012/05/particle-info-node/
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.
Actually there were two different issues involved here:
- Recently enabled Smooth modifier wasn't actually designed for curves, so
it in fact requires a bit bigger work to make it working.
For now added check for object's typy in this modifier and if it's not
mesh, it wouldn't try to use edges.
The reason why it worked in 3d viewport is that creating DM from curve while
displist is still ocntrcuting for would result in empty CDDM and that leads to
not taking edges into account, only vertexCos passed to modifier would be used.
This makes it behaving a bit differently from if it was a mesh, but still gives
quite reasonable result. Would leave actual fix for a guy who enabled smooth
modifier.
- Another issue is related on ensuring sculpt mask layer after applying modifier.
This shall happen only for meshes.
One side of change is related on making code easier to follow, due it started
being quite messy because of all in-lined mode/view checks. Now there's a bit
of code duplication, but it's much easier to see what's going on there.
Another side of patch is related on re-arranging elements in header in a way
that follows rule "depending elements are placed after elements they depends on".
This might be a bit against mostly-used-based elements placement, but now it's
much easier to figure out where to add new option. Also it fits better other
blender's areas such as image editor header, i.e.
This results in some buttons not disabled when there's no currently displaying frame,
but this saves lots of cache lookups and threading loks for every frame update.
This prevents high memory usage by non-proxied frames when doing mask parenting.
Description from code:
Originally was needed to support image sequences with different image dimensions,
which might be useful for such things as reconstruction of unordered image sequence,
or painting/rotoscoping of non-equal-sized images, but this ended up in unneeded
cache lookups and even unwanted non-proxied files loading when doing mask parenting,
so let's disable this for now and assume image sequence consists of images with equal sizes
for animations
Pipeline options such as Use Compositing and Use Sequencer cannot be animated
due to the way that they are implemented now, so adding these to the list of
render properties that we cannot animate.
Issue was caused by do_versions being used pdata as reference for active/render/
stencil/clone layer indices instead of fdata.
Added some utility functions used only by do_versions to be sure this indices
are set from fdata for pre-bmesh files.