===========================
- Changed 3D viewport reconstruction settings to more usable defaults
- Some code clean-up
- Option to place markers for detected features across the whole frame,
inside grease pencil areas or outside of grease pencil areas.
===========================
Rest of recent compilation error fix (this stuff better be kept
separated to make it easier to separate patches for trunk integration).
Made behavior of tracks selection more consistent with other areas:
- Make track active when starting sliding it.
- When using extend selection clicking on non-active track make it active
instead of immediately hiding it.
- Reset offset from locked selection when using non-extending selection.
===========================
Camera sensor size changes:
- Now blender camera has got vertical sensor size property
and setting to control how FOV is getting calculated
(depending on aspect ratio, using horizontal sensor size or
vertical only).
- Made changes in game engine and uv project modifier as well
- Presets should be updated (don't have settings by hand right now
and the internet in debalie is really fails this year)
- Remove the overly-conservative use of libmv's re-track tracker. The re-track
tracker would take a normal tracker such as TRKLT or KLT or pyramid KLT, and
track from frame 1 to 2, then back from the position found in 2 back to 1.
Then, when the reverse-track doesn't match the original track with high
precision, the track is considered "failed". This is a good approach for
fully automatic reconstruction, but is too conservative for supervised
tracking.
The retrack-tracker will return when fully automatic tracking is added.
- Always solve for (dx, dy) in the TRKLT loop even if the linear system is
ill-conditioned. The client (Blender in this case) can still use the solved
position, even though it is less reliable.
- Expose the pyramid level setting to the tracking UI when in KLT tracking
mode. While it was tempting to hide this detail from the user, in reality it
does more harm than good, since the way tracking fails depends on the pyramid
level. For now, exposing the pyramid details is a good compromise.
- Move the settings for the tracking algorithm, including search window,
tracking algorithm, pyramid levels, etc, into the track object instead of a
global movie clip object.
===========================
Fixed crash when trying to track from frame where there's no
keyframed markers to use for keyframed tracking
(i.e. when you've tracked forwards, then backwards and the forwards again).
===========================
DeBalie commit (main changes only):
- Code cleanup
- Selectable tracking graph curves and curve knots
- Graph curve and curve knots can be deleted now
- Fixed wrong write when linking libraries
(error is caused by hardcoded cound of linkable ID blocks)
- Fixed for KLT tracker when using keyframe adjustment
===========================
Fix for totally unworkable KLT tracker caused by recent codereview commit.
Float buffer for libmv should be calculated in exactly such way.
Several issues were discovered when was looking into this bug:
- MPEG file format didn't set needed codec settings such as frame
rate and so, Was caused by not very correct fix fix#21351.
- "Expert" codec settings stored in idprops was affected on
formats which don't actually need them causing some conflicts
in codec settings.
- Flash codec doesn't support b-frames.
Now C presets shouldn't affect on each other and flash coded wouldn't
use b-frames even when using h264 format. Should work fine for files
created from scratch. If existing files fails to render, try to
switch file format to something else and then back to needed value.
- removed AVG2, was only used once.
- remove unused LONGCOPY define.
- removed BLI_STRUCT_OFFSET, was only used once, replce with offsetof
- formatting edits, split some macros over multiple lines.
- remove redundant casts
- replace strcmp's with "" to just check first char.
- added WM_event_print(), debug mode only to print events since the structs values are not that meaningful.
- added warnings if locale/font dirs cant be found.
===========================
Naming refactor: avoid using acquire from movie clip related functions.
This stuff doesn't need releasing, all locks happens in getters,
so using get instead of acquire makes more sense here.
===========================
Fixes for codereview issues pointed by Brecht:
- Replace use_default_clip with use_active_clip setting for
motion-tracking constraints.
- Removed unneeded Clip panel from toolshelf when no clip is opened.
- Put options in Display panel in one column.
Don't want properties region be wider and it should also be
a bit easier to find option you need. Maybe additional re-shuffle
would be good here.
- Reversed order of items in Clip menu
- Re-ordered selection operators in clip editor Select menu to
match 3d viewport order.
- Share common part of sensor/shift and so detection between
object_camera_matrix and Follow Track constraint.
- Fixed typos in translate mode caused by copying files.
- Movie clip angle output is now in radians. Transform node now
accepts rotation in radians too.
- Use scale-rotate-translate order for transformation node and
stabilization data.
Also makes sense when using transform node for non-tracking goals:
image would stay centered when applying only rotation and scale.
Think it's nicer.
- Fixed compilation error caused by recent node-update commit.
This prevents access to non-existent typeinfo during type initialization,
when node types have been removed and such nodes are deleted from older files.
All blenkernel functions now only set the node->update flag instead of directly
calling the update function. All operators, etc. calling blenkernel functions
to modify nodes should make a ntreeUpdate call afterward (they already did that
anyway).
Editor/RNA/renderer/etc. high-level functions still can do immediate updates by
using nodeUpdate and nodeUpdateID (replacing NodeTagChanged/NodeTagIDChanged
respectively). These old functions were previously used only for setting
compositor node needexec flags and clearing cached data, but have become generic
update functions that require type-specific functionality (i.e. a valid typeinfo
struct).
===========================
Initial implementation of graph view for movie tracking data.
Used the same UI-side approach as preview region for sequencer:
create region for graph-related information inside clip editor.
It's easier and nicer than trying to hack graph editor which is
currently designed to work with AnimData only. Trying to make it
more abstract to deal with any kind of data doesn't seem be real
benefit for now.
Currently supported displaying per-frame average error and
selected tracks' movement speed (pixels per frame).
Additional changes:
- Collect per-frame average error after solving.
- Split space clip drawing code into different files.
- Added per-frame average solving error.
- added API examples for mathutils.Color/Euler/Quaternion/Matrix.
- corrected own bad spelling matricies --> matrices.
- minor pep8 edits.
- update CMake ignore file list.
There has been quite a bit of fuss about particle dupliobject rotation in 2.59, so here are some changes to make things work a bit more consistently and predictably in 2.60.
Much of the confusion has been about what the "Initial rotation" for particles actually means. Simply put it's just a vector that that the particles (and the dupliobjects) are aligned to and around which they can be rotated with the phase controls. I've now renamed these controls under a label "Rotation axis".
In 2.59 and previous versions the dupliobject's global x-axis was aligned to the particle rotation axis for non-hair particles. This meant that the object's own rotation (in addition to the particle rotation) could effect the dupliobjects' rotations. This old behavior can still be used with the "Rotation" option in the particle render panel when object/group is set as the visualization. This option is also activated automatically for old files to maintain backwards compatibility.
Now the default dupliobject rotations ignore the object's own rotation completely and align the object's tracking axis to the particle rotation axis. The tracking axis can be found under the Object tab -> Animation Hacks panel.
In 2.58 the way of calculating the rotation for hair didn't work as intended and enabled many non-functional combinations of options. For this reason I removed most of the rotation options for hair in 2.59. Now the options have been reimplemented better and the dupliobject's tracking axis is aligned to the hair direction by default (Rotation axis = Velocity / Hair). All the other axis options work too along with the phase controls.
===========================
Some improvements for feature detectors:
- Sort features by score when filtering features by
distance using FAST library.
- Added option to place markers only in areas outlined
by grease pencil.