===========================
- Bundle re-newed libmv library.
- Update API in libmv-capi to match new library.
- Initial implementaition of feature detection.
- Fixed bug with incorrect user sync when tracking
for first frame.
===========================
- Fixed compilation error with OpenCOLLADA
- Added sample preset for tracking camera.
- Fixed bug with wrong order of preset properties loading/saving.
===========================
Changes to tracking camers settings, so they could
be copied to Blender camera on reconstruction.
Sensor height doesn't make any sense yet for tracking camera.
===========================
Commiting patch #24427: Editable camera sensor size (meaningful focal length units)
Thanks to:
Matt Ebb (author of original patch)
Ejner Fergo (porting patch through versions)
Brecht Van Lommel, Dalai Felinto, Campbell Barton (patch review)
Cant't commit changes to addons (they aren't branched, so some of them
could be broken now)
===========================
- Tracking camera presets.
- Reset principal to image center operator.
Things to think about:
- Unified presets for tracking camera and blender camera.
- If prinipal should be a part of preset.
===========================
Initial implementation of Scale operator.
There's no access from operator panel to operators defined for
Clip Editor space, so distance can't be controlled as operator
property.
Added new property to MovieTrackingSettings for this.
===========================
Small fixes and features:
- Fixed broken toolshelf for empty space clip.
- Added option to hide disabled tracks.
- Do not send disabled markers to tracking job.
- Fixed bug with disabling marker when tracking backwards.
- Fixed bug with unset principal point by default.
- Hide bundle projection for disabled markers.
- Flip orientation when hitting "Set Axis" when bundle is
already defines axis.
===========================
- Report an error if more than needed tracks are selected
for orientation operators.
- Added possibility to align bundle along X or Y axis.
===========================
Basic implementation of scene orientation tools.
Most probably they'll eb re-exposed in UI soon.
- Implemented "Set Floor" operator.
It takes three
selected tracks which has got bundles and makes them
parallel to scene floor. One of selected bundles (active
bundle if presents) becomes scene origin, the other
becomes X-axis. Guessing of this bundles could fail.
Camera tries to be on positive Z half-space.
- Implemented "Set X-axis" operator.
This operator takes selected track with bundle and
aligns it along X-axis. This means rotation to make
Y-coord of this bundle 0 is applied.
- If camera has got a parent, then transformation would
be applient ot this parent, not to camera.
Useful for configuration when Empty is used to orient
camera and some related stuff in 3D space.
===========================
Attempt to fix bundles position for case scene camera has got
other constraints than CameraSolver (mostly to support camera
parenting to other object for scene orientation).
Use a bit silly logic to calculate camera matrix to orient
bundles in 3d space: temporary disable all CameraSolver
constraints for camera, re-calculate object matrix, use it
to orient bundles and clear temporary flag.
This allows to parent both of camera and mesh created from
bundles to the same Empty object and both of bundles and
mesh vertices would have the same coords in camera space.
Also removed copying of location/rotation from camera to
bundles object in "Bundles to Mesh" operator.
this will reconnect nodes as if the deleted node is muted.
Operation is added to the space_node node menu and to the keymap as CTRL-X
to test this just add some nodes to the space_node
select one or multiple nodes and press CTRL-X
It should reconnect the nodes as they were muted
limitations:
1. it performs a delete and reconnect per node. It does not evaluate all selected nodes as one whole
2. mute only supports Value, Vector and Color data types, so does this feature
3. not usable for nodes where input and output does not match (like colorToBW)
Where reconnect could not be preformed the links will be removed from the model.
Undo works with this delete with reconnect.
===========================
- Fixed typo in RNA api for has_bundle.
- Added operator "Bundles To Mesh".
It was a request from Sebastian and this operator creates mesh
with vertices using bundles coords for vertices coordinates.
A bit limited atm -- new object can't be parented to camera,
so changing camera orientation would requite mesh re-creation.
===========================
- Reduced size of widget for camera focal length units.
Also changed labels to mm/px. Now it's much easier to read
values and titles here.
- Reordered settings in "Display" panel. Hopefully it's
now easier to read options here even when N-panel
isn't large enough.
- Fixed bug with "disappearing" labels from "Active marker" panel.
- If search areas are hidden and marker is disabled,
make pattern area red rather than displaying nothing for
this marker.
- Internal change: "show marker path" became "show track path".
- Lock shape of pattern to square by default. Control unlocks
this shape.
- Hitting escape when sliding cancels changes and stops sliding.
- Search areas are hidden by default now. No big benefit of
looking at them now after changing default settings to
2D tracker and pattern/search size.
- Both of Toolshelf and Properties panels are now visible
by default.
- Move keyframes from Properties panel to Toolshelf.
It is a key thing which makes reconstruction correct and
this options were too hidden and not so convenient to
use.
===========================
- Fixed incorrect usage of RNA structure for
CameraSolverConstraint.
- Fixed some typos in object_constraint which were
casting CameraSolver data to FollowTrack data.
- Tracking-related constraints now have got option
"Use Defult Clip" which makes them use clip set as
active for scene. Enabled by default.
- Set active blender camera focal length after reconstruction.
- Corrected offset of sequence images. Now first image from sequence
should be at scene frame 1.
===========================
- Changed libmv api to use doubles instead of floats.
No real benefit rather than keeping API uniform.
- Optimized reconstructed camera search. It's optimized for
playback, not random access.
- Added option to show projection of bundles into footage.
To see bundles "Show Bundles" from Display panel should
be enabled. Used very rough limit of 3 px to consider projection
is fine. Colors are still hard-coded. Not sure it could be useful
to make them configurable.
- Added option to mute footage. It could be useful to check
if markers/bundles are moving smoothly.
- Added selector for focal length units.
===========================
- Implemented hide/show track functionality.
- Small re-exposing Marker menu into UI.
Now it's called "Track". Added new operators there.
- Set reconstructed clip as active to scene.
===========================
- Made settings for tracking non-animatable.
- Fixed crash when enabling/disabling markers from
"Specials" menu.
- Translate all coords to make first reconstructed camera
be at position (0,0,0).
- Blender's camera now affects on reconstructed data.
Bundles are "parented" to active scene camera. So now
bundles' could could be scaled and rotated when camera
is rotating/scaling.
===========================
- 32 bit linux compilation should be fixed now.
- Camrea reconstruction data should be better now
when there's no reconstructed cameras.
- Implemented "Set Origin" operator
- Added "Specials" W-key menu for SpaceClip.
Supports such operators:
* Enable track
* Disable track
* Set origin
===========================
- ColaMD moved from OpenNL to extern/.
It'll be needed for libmv. Also, it's a bit updated from
year 1999 to 2007.
Need to be tested for regressions.
- Updated bundling script for libmv. Now it uses fuller
subset of this library.
- Bundled new libmv.
- Request from Keir: add command line argument to toggle logging
stuff on. Currently, if Blender is launched with -d argument
libmv would start printing logging messages. There's no
argument to increase verbosity, but there's API in libmv-capi,
so it'll be easy to add.
- Finally fixed crash when ibuf is acquiring with user=NULL.
- Added ActiveClip property to the scene. This clip is used
as default value for new match-moving constraints.
- Added some flags to Display panel of View3D. Related on
displaying match-moving stuff.
- Internal change: bundles data moved inside to MovieTrackingTrack.
- Initial implementation of 3d reconstruction.
- Added constraint "Camera Solver". This constraint is supposed
to be used to make camera follow the reconstructed camera path.
- Added "reference" property to "Follow Track" constraint.
Now object could be "parented" to 2D track position or to
3D bundle position.
The very quick guide:
To use reconstruction you should have footage with tracked markers,
choose two keyframes in "Tracking settings" panel. There should be
quite noticeable parallax effect between this two frames. This
is used to initialize reconstruction stuff.
Camera data (focal length and optical center) should be filled in
"Camera Data" panel. Optical center is often the center of image,
so it'll be filled in automatically.
You should also set values for undistortion (K1, K2 and K3). Currently,
there's no any visualization for this parameters and approach of
"change value -> reconstruct -> see what've changed" is the only way
for now.
Libmv team is working on auto-calibration tool, so it should be
easier to gather this coefficients in nearest (i hope) future.
There's also no scene orientation stuff.
Basic workflow:
- Open footage.
- Set markers and track them.
- Fill in camera data and keyframes.
- Hit "Solve Camera" button.
- Add "Camera Solver" constraint to camera in scene.
- Choose movieclip in that constraint.
- To see bundles in 3D viewport active clip should be set
in scene buttons.
A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done.
In blender movies this feature is known to be implemented, but until now it never got integrated into trunk.
Proposal
With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index.
In the compositor the ID Mask node can be used to extract the information out of the Render pass.
Impact
User interface
On the properties-space the next changes will be done
Scene⇒Render layer⇒Passes⇒Material index will be added
Material⇒Options⇒Pass index will be added
DNA
Material struct will get an new field called “index”. this will be a short-type.
Material struct the field pad will be removed.
A new Render-layer pass will be added (bit 1«18)
RNA
Material RNA is updated (based on “pass index” from object)
Render layer RNA is updated (based on IndexOB)
Blender internal renderer
The Blender internal renderer will process the render pass as a copy of the Object index.
Blender compositor
The render layer input will get a new output socket called “IndexMA”
Usage
An example on how to use material index can be found at:
https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend
This is also example of a commit message longer than the commit itself :)
===========================
- Removed unneeded checking of marker==NULL
- Tracks could be named now.
- Implemented "Follow Track" constraint to "parent"
objects to tracks from movie clip.
- Added operator to create such constraint for active object
using clip and track from current context.
===========================
- Internal changes:
* Fixed bundle.sh script to bundle libmv: it was generating
incorrect CMakeLists header.
* Rename CLIP_OP_delete to CLIP_OT_delete_track.
* Fixed crash when BKE_movieclip_acquire_ibuf is called
with NULL user.
* Made MovieTrackingMarker structure 8-bytes aligned
* Use writestruct rather than writedata for track markers.
This allows to change MovieTrackingMarker safely.
- Added "Delete Marker" operator which deletes marker for
current frame only. Hotkey is Shift-Del.
- Added MovieClip.size and MovieClip.resolution RNA properties.
Use last accessed frame number to get ImBuf from sequence.
- Added different actions for "Clear Path" operator:
* Clear path up to current frame.
* Clear the whole path.
* Cleat remained part of path (for frames after current).
- Changed buttons order and icons for tracking. New order is:
* Track frame backwards.
* Track sequence backwards.
* Track sequence forwards.
* Track frame forwards.
NOTE: this breaks compatibility with existing .blend files again,
but it should be much easier to change data structures without
breackaged in the future.