===========================
- Fixed some silly things ni DNA design. Now all
reconstruction data is stored in Tracking->Reconstruction.
Please, re-solve your cameras -- reconstruction data
wouldn't be read from files saved in blender below this
commit.
- RNA accessors for reconstruction data.
- Store average reconstruction error in new reconstruction
structure and show it in clip editor header after
reconstruction.
- Highlight failed to reconstruct frames with red in cache line.
- Added "group" "Failed Tracks" in Select Grouped operator,
Meant to be used for selecting tracks bundles from which
failed to to be solved.
- Hotkey to delete marker: Shift-X.
- Jump to next/prev failed frame operator. Hotkeys are
Ctrl-Shift-Left/Right Arrow.
===========================
- Do not show frame boundary border when stabilization isn't enabled.
- Separate stabilization settings from display in clip editor.
Now clip can contain stabilization data but still be displayed
un-stabilized in clip editor.
- Internal changes in stabilization:
* Use separated location/scale parameters rather than 4x4 matrix.
In some ares "decomposed" data is needed (text draw functions, i.e.).
Also such decomposed data could be used in compositor.
* MovieClip now uses own structure for cache where additional data
can be stored. MovieCache structure now one of properties in
this new structure.
* Get rid of stable image buffer stored in MovieClipStabilization
structure. Pre-created buffer for scaling still stored there.
This helps to keep playback realtime -- re-creating this buffer
introduces ~15% slowdown.
- Added sliders to 2D stabilization panel which controls intensity
of translation/scale which applies on shot.
- Added filter type to Stabilize2D compositor node. Supports nearest,
bilinear and bicubic interpolation.
- After discussion with Sebastian and Francois added new node called
Transformation. It can apply translation, rotation and scale. It's
not the same thing as applying this components separately -- all
transformation is happening inside "canvas". And it should be more
accurate on interpolation and sub-pixel translation.
Need to check order of applying translation/scale/rotation btw.
- Added output sockets to movie clip compositor node. They holds
stabilization data which can be used by Translate or Transform
nodes.
- Minor fix of UI issues in Display panel.
use default when invalid settings given.
removed odd/annoying bit shifting of the flagu/v for such basic function made code hard to understand and would fail if new flags were added.
- The object ID was being passed to the data_delete_material_index_id() from object_remove_material_slot(), rather then the object data. (so the material slot fix wouldnt run in that case).
- add support for fixing text object materials too.
create a new parameter for materials.pop() to not remove material slot.
this way the mat_nr is still the old one.
for the default behaviour we now have material remapping (i.e. data_delete_material_index_id(id, index)).
This new function is brought from the material_slot remove function.
===========================
- Fixed occasional crash caused by conflicting access
to non-threadsafe moviecache. Added lock on movie clip
ibuf acquire level.
- A bit nicer feedback from libmv when doing reconstruction.
Now if all tracks and frames were reconstructed average
error would be reported in "notification area".
If there's something failed to be reconstructed warning
message would appear and failed items would be printed to
the console.
===========================
Changed behavior of 2D stabilization:
- Fixed epic spelling error.
- Neither 3d viewport nor MovieClip compositor input node
are using stable footage now.
- Now one thread lock can be avoided -- stable shot
isn't acquiring from several threads.
- Added compositor noe Distort->Stabilize 2D which is
supposed to stabilize "incoming" image using movie clip
block as reference.
Probably it could be useful to define MAT4 socket type and
use it in MovieClip node as output for stabilization and
as input socket for Stabilization node so relation could be
easily visible on "graph".
===========================
Implemented 2D stabilization:
- Based on average point of several tracks.
- Tracks for stabilization are controllable from
"2D stabilization" panel.
- Implemented autoscaling. Could fail if average point is
too close to frame boundary.
- Background clip in 3D viewport and MovieClip input
compositor nodes are using stable shot.
Some internal weak things:
- Stable shots aren't cached in moviecache. There is
only one "slot" for stable shot inside stabilization
structure.
- This could fail if several threads are requested different
frames (for example when starting playback, pause to make
Nodes Editor trigger refresh, continue playback).
- Due to it shouldn't crash i decided to implement better
caching for stable shots a bit later.
Enabled by default and also enabled for older filesm so
there should be no regressions.
In some cases it's useful to not use subdivided uvs for multires.
===========================
Attempt to switch moviecache to use CacheLimiter.
Some changes in limiter were necessary:
- Limiter counted mapped memory twice when was chacking
how many memory is used.
- It was using "global" memory usage not memory usage by
cached elements. It will cause big problems when there's
large mesh or plenty of undo steps are in memory nothing
would be cached in sequencer.
- To solve this problem introduced "callback" to measure
cached element size. It could be not very accurate in general,
but it works well for image buffers. And if this callback
isn't set old-school memory usage check would be used.
- The whole cache used to get freed when memory limit exceeded,
now it'll drop only as much elements as necessary to reduce
memory usage.
Sequence cache wasn't switched to use moviecache but
now it's really easy to do. When i'll be sure new caching
scheme works fine.
Now clip editor uses as much memory for cache as it's set in
User Preferences (Preferences -> System -> Sequencer -> Memory
Cache Limit) which si 128Mb by default. Please do not complain
about few cached frames out-of-box and just increase limit
there. Caching fixed amount of frames wasn't so nice indeed.
===========================
- Split clip hotkeys into two categories:
* Global
* Editing
This allows to re-use such hotkeys as track markers
from properties region without worrying about conflicts.
- Anchor point could now be offseted from marker position.
- Pattern can now be symmetrical relative to marker position only.
- Changes to mouse sliding:
* Left top rectangle used for marker position and now
it's half inside and half outside of marker.
* Right bottom corners are for size.
* Anchor point can be slided with mouse to adjust offset.
- Resolved conflict caused by left-mouse selection option.
Now it works perfectly with sliding -- no more "sticky" keys or so.
- Fixed some typos.
* where_is_object_time was called for every effector evaluation only to determine the object velocity in some rare cases.
* Calculating the effector velocity is now done in the effector precalculation stage.
* Removing this makes the code thread safe and also should give some nice performance boosts when simulating a lot of points.
* Thanks to MiikaH for noticing this problem.
===========================
Fixed bug in Join Tracks operator: if there are two keyframes for
the same frame but one of makers is disabled then there's no error.
===========================
- Operator "Join Selected Tracks".
This operator joins all selected tracks to active track.
Hotkey is Ctrl-J.
- Operator "Select Grouped".
Now it's easy to select all locked/keyframes/etc markers.
Hotkey is Shit-G.
- Operator to jump to beginning/end of active path.
Hotkeys are Shift+Ctrl+Arrow Left/Right.
- Operator to copy color from active track to all tracks.
===========================
- Fixed discovered bug with selecting hidden marker areas with mouse.
- Refactor of context structure used for 2D tracking:
* Tracker object is now per-track. This allows to use
different pyramid levels for different tracks and
now search area resizing shouldn't make tracking less
accurate.
* This is also be used for new optimized libmv API.
* This allowed to use OpenMP to track different markers in
separated threads.
This allowed to reach quite cool speedup for multi-core CPU.
Generated images would not be re-generated with a float buffer on load, even when selected on creation.
Now save the float buffer setting as a generated image flag.
This means you can enable before baking to enable baking to a float buffer.
===========================
- Fixed crash when holding down S and R keys.
- Fixed deleting of first marker.
- Tracking should now work fine with float buffers.
- Added option to show distortion grid. It's most probably
temporary solution until [auto]calibration tools aren't
merged.
This grid defines straight lines on the image.
===========================
- Internal change: do not use maroses for checking the only
one bit of track/marker flags.
- Do not display track name for disabled markers when
"Show Disabled" is turned off.
- Option to lock tracks. Locked tracks can't be be moved,
scaled, re-tracked and so.
===========================
- Selected bundles are now highlighted with outline.
It looks more Blender-way of highlighting selected items.
- Added option to show bundles names in 3D viewport.
- Bundles now coudl be selected from 3D viewport.
===========================
- Fixed smal lbug with mouse selection.
- Added option to show tracks names and their states
(disabled, keyframed, estimated, tracked).
===========================
- Remove set but not used variable in clip buttons.
- Set keyframe when sliding marker with mouse.
- Also set keyframe when sliding from preview widget.