» GSoC 2011 Tomato Branch
Search all Tomato builds in our basket
Updated 15:31 April 24th, 2012
26
(90)  14,502

GSoC 2011

 

 

Tomato Branch

 

*** The Mango Team + Cycles improvement will be using this branch until the feature freeze for 2.63 is over ***

Blender 2.63 release candidates available - Ready for testing :) 

Blender Foundations 2011 Google Summer of Code Projects.

Now with all the trunk intergrations. These Tomatos are ripe for the pickin'

Congrats Sergey :)

Motion Tracking Wiki

GSoC 2011: Tomato Branch

Tomato Branch

Camera Tracker Integration:

Sergey Sharybin will design interfaces and other tools for integrating the camera tracking library libmv for 2D and 3D matchmoving, camera tracking, and camera stabilization. Ton Roosendaal will be mentoring.

User:Nazq-qul

 

Camera Tracker library improvements:

Matthias Fauconneau will work on additional features for the libmv library so that it can fully meet Blenders camera tracking needs. Julien Michot, one of the main developers of libmv will be mentoring.

User:Matthias.fauconneau

 

 

Camera tracking integration:

http://wiki.blender.org/index.php/User:Nazg-gul/GSoC-2011

Here are some images and videos from nazgul:

http://download.blender.org/ftp/incoming/the_very_first_tomato.avi

Camera tracking integration - Step 2

Camera tracking integration - Step 3

Camera tracking integration - Step 4 - trailer

Camera tracking integration - Step 4

 

 

Tomato tracking test - By: Sebastian König

4 corner pin tracking - By: Sebastian König

Tutorial: Four corner pin tracking with Blender - By: Sebastian König

First native Blender 3d track and "scene" ever! - By: Sebastian König

Eye-Candy. A little less crappy tracking test with Blender - By: Sebastian König

The Candyride. More tracking fun. - By: Sebastian König

Demo of tracking workflow in Blender - By: Sebastian König

Blendercookie.com Tutorial - By: Sebastian König

 

Blendercookie.com Using the Camera Tracker – Round 3 - By: Sebastian König  

Blendercookie.com-Blender: Overview of Object Tracking in Tomato Branch - By: Sebastian König  *NEW*

The footage used in this video is available from here: hollywoodcamerawork.us/trackingplates.html

 

Setup Scene for Tracking in Blender - By: François Tarlier

RotoTracking with Blender 2.5 (rotoscopy using tracking Data) - By: François Tarlier

Easy 2D stabilization footage with Blender 2.5 (tutorial) - By: François Tarlier

 

 

Dynamic Paint wave simulator and Tomato Branch's Camera tracking, Miikah uses GSoC 2011 Salad Branch. 

By: Miika Hämäläinen

 

 

Invasion of the Robots - By: Conz3D

Invasion of the robots thread on blenderartist.org

 

 

 

 

Tomato Test by: Sebastian König

 

Images from Nazqul

viewport

Qt libmv Reconstruction Tool

GSoC-libmv-tracker.png

 

Not enough flavors for your taste buds?

Try the All You Can Eat Salad Bar.

 

Built with MSVC 2009 +CMake on x64 Win7   
Blender 2.62.4 + GSoC-Tomato.Win7.x64-45946

WITH_BF_FFMPEG = True
WITH_BF_OPENAL = True
WITH_BF_QUICKTIME = False
WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = True
WITH_BF_JACK = False                                                                                                                                                                                    
WITH_BF_SDL = True
WITH_BF_ICONV = True
WITH_BF_COLLADA = True 
WITH_BF_SNDFILE = True                                                                                                                                                                                          WITH_BF_CYCLES = True                                                                                                                                                                                        WITH_BF_OCEANSIM = True           

 

 

Congrats to all in the GSoC.

Happy Blending...

Cheers,

  ~Tung

 

Tomato Logs: Sergey Sharybin, Matthias Fauconneau

 

Revision: 46112
Author:nazgul
Log Message:
Merging r46096 through r46110 from trunk into soc-2011-tomato

Revision: 46110
Author:nazgul
Log Message:
Tomato: versioning patch for current files which have got curves view open

Revision: 46105
Author:nazgul
Log Message:
Tomato: disable texture buffers for intel cards due to they're constantly blinking with black frames

Also remove unused code.

Revision: 46098
Author:nazgul
Log Message:
Tomato: initial commit of mask editing tools into SVN

- Added new dtaablock called Mask which might be re-used in any area.
  Currently editing of masks happens in clip editor and they might be used in
  compositor nodes only.
- Added new mode to clip clip editor to interact with masks.
  Implemented basic tools to create shapes, splines and points. Also implemented
  idea of UW points for feather which means feather points are have got U
  coordinate along spline (which is measured from 0 to 1) and W is it's weight
  meaning distance from main spline.
- Spline points might be parented to movie tracks.
  Interface for this isn't best yet.
- Rasterisaztion of masks happens in compositor node (Input -> Mask)
  Input image of this ode is used as reference for mask resolution.
  Currently all splines of all shapes are rasterizing independently which
  means shapes with holes are not supported.
  Also feather rasterization is not implemented.

  Rasterized was implemented by Pete Larbell, thanks!

Do not consider this is something finished, there's still lots of things to
be done (especially from interface and usability points of view).

Revision: 46096
Author:nazgul
Log Message:
Merging r46074 through r46095 from trunk into soc-2011-tomato

Revision: 46089
Author:nazgul
Log Message:
Tomato: refactoring of dopesheet to allow different sort orders in list of channels

Store list of channels displaying in dopesheet separately from list of tracks.
This allows to re-sort channels in dopesheet independently from list of all
tracks (currently only alphabetic sorting is implemented).

This also allows to cache assorted information (like tracked segments of track)
but currently such a things are not bottlenecks and could be done after merge
dopesheet view into trunk.

TODO:
- Still have some deadlocks when drawing selected channels.
  Skipping channel background or keyframe drawing helps here but
  this need to be resolved.
- Bump sub-version and wrote code needed to convert pre-dopesheet interface
  with opened curve view displaying properly.
- Probably it'll worth caching tracked segments.

Revision: 46082
Author:nazgul
Log Message:
Tomato: fixed opengl issue with intel cards

Issue was caused by some mixes of glRect called to draw zero-width rectangles
and glCalllist.

Resolved by not using glRect if rectangle is "degenerated".

Revision: 46078
Author:nazgul
Log Message:
Tomato branch: correction to dopesheet background color versioning check

Revision: 46075
Author:nazgul
Log Message:
Merging r46062 through r46073 from trunk into soc-2011-tomato

Revision: 46064
Author:nazgul
Log Message:
- Synchronize with changes in trunk
- Reverted parts of recent trunk merge related on changes for preview
  image save skip needed for startup.blend generation

Revision: 46062
Author:nazgul
Log Message:
Merging r46043 through r46061 from trunk into soc-2011-tomato

Revision: 46044
Author:nazgul
Log Message:
Merging r45936 through r46042 from trunk into soc-2011-tomato

Revision: 46037
Author:nazgul
Log Message:
Camera tracking: small improvements to tripod solver"

- Disable camera refirement due to it's not only refines camera intrinsics
  but also adjusts camera position which isn't necessary here
- Detect rigid transformation between initial frame and current instead
  of detecting it between two neighbour frames.
  This prevents accumulation of error and seems to be working better
  in footages i've tested.

 

Revision: 45942
Author:blendix
Log Message:
Cycles: more attempts to fix windows build for BVH binning.

Revision: 45941
Author:blendix
Log Message:
Point Cache: allow baking external smoke caches. This needs to be cleaned up
a bit, I couldn't fully understand how the External setting is supposed to
work to make further changes, but this should make it work at least.

Revision: 45940
Author:blendix
Log Message:
Cycles: attempted BVH binning build fix for windows.

Revision: 45936
Author:nazgul
Log Message:
Merging r45928 through r45935 from trunk into soc-2011-tomato

Revision: 45928
Author:nazgul
Log Message:
Merging r45877 through r45927 from trunk into soc-2011-tomato

Revision: 45926
Author:dingto
Log Message:
Cycles:
* Fixing wrong windows define, causing compile errors.

Revision: 45918
Author:blendix
Log Message:
Cycles: cuda build fix.

Revision: 45917
Author:blendix
Log Message:
Cycles: BVH build time optimizations:

* BVH building was multithreaded. Not all building is multithreaded, packing
  and the initial bounding/splitting is still single threaded, but recursive
  splitting is, which was the main bottleneck.

* Object splitting now uses binning rather than sorting of all elements, using
  code from the Embree raytracer from Intel.
  http://software.intel.com/en-us/articles/embree-photo-realistic-ray-tracing-kernels/

* Other small changes to avoid allocations, pack memory more tightly, avoid
  some unnecessary operations, ...

These optimizations do not work yet when Spatial Splits are enabled, for that
more work is needed. There's also other optimizations still needed, in
particular for the case of many low poly objects, the packing step and node
memory allocation.

BVH raytracing time should remain about the same, but BVH build time should be
significantly reduced, test here show speedup of about 5x to 10x on a dual core
and 5x to 25x on an 8-core machine, depending on the scene.

Revision: 45916
Author:blendix
Log Message:
Cycles: centralized task scheduler for multithreading, which is basically the
CPU device threading code wrapped into something reusable.
     
Basic idea is that there is a single TaskScheduler that keeps a pool of threads,
one for each core. Other places in the code can then create a TaskPool that they
can drop Tasks in to be executed by the scheduler, and wait for them to complete
or cancel them early.

Revision: 45877
Author:nazgul
Log Message:
Merging r45810 through r45876 from trunk into soc-2011-tomato

Revision: 45810
Author:nazgul
Log Message:
Merging r45801 through r45809 from trunk into soc-2011-tomato

Revision: 45808
Author:blendix
Log Message:
Tomato branch: "persistent" parameter for addon_utils.enable(), so that we can
enable addons from a startup script and keep them enabled after loading .blend
files.

Revision: 45801
Author:nazgul
Log Message:
Merging r45792 through r45800 from trunk into soc-2011-tomato

Revision: 45793
Author:nazgul
Log Message:
Merging r45748 through r45791 from trunk into soc-2011-tomato

Revision: 45772
Author:blendix
Log Message:
Cycles: increase SVM stack size to allow more complex node setups, did not
find any slowdowns with the increased size.

Revision: 45754
Author:blendix
Log Message:
Cycles: added a Normal output to the texture coordinate node. This currently
gives the object space normal, which is the same under object animation.

In the future this might become a "generated" normal so it's also stable for
deforming objects, but for now it's already useful for non-deforming objects.

Revision: 45753
Author:blendix
Log Message:
Cycles: per render layer Samples control, leaving it to 0 will use the common scene setting.

Revision: 45752
Author:blendix
Log Message:
Cycles: environment pass will now render environment even if film is set to transparent.

Revision: 45748
Author:nazgul
Log Message:
Merging r45744 through r45747 from trunk into soc-2011-tomato

Revision: 45744
Author:nazgul
Log Message:
Merging r45738 through r45743 from trunk into soc-2011-tomato

Revision: 45738
Author:nazgul
Log Message:
Merging r45718 through r45737 from trunk into soc-2011-tomato

Revision: 45718
Author:nazgul
Log Message:
Merging r45708 through r45717 from trunk into soc-2011-tomato

Revision: 45712
Author:blendix
Log Message:
Cycles: render layer "Exclude Layers" added.

Scene layers (all object that influence the render, directly or indirectly) are
shared between all render layers. However sometimes it's useful to leave out some
object influence for a particular render layer. That's what this option allows you to do.

Revision: 45708
Author:nazgul
Log Message:
Merging r45693 through r45707 from trunk into soc-2011-tomato

Revision: 45694
Author:blendix
Log Message:
Cycles: add "Blur Glossy" integrator option.

When using a value higher than 0.0, this will blur glossy reflections after
blurry bounces, to reduce noise at the cost of accuracy. 1.0 is a good
starting value to tweak.

Some light paths have a low probability of being found while contributing much
light to the pixel. As a result these light paths will be found in some pixels
and not in others, causing fireflies. An example of such a difficult path might
be a small light that is causing a small specular highlight on a sharp glossy
material, which we are seeing through a rough glossy material. With path tracing
it is difficult to find the specular highlight, but if we increase the roughness
on the material the highlight gets bigger and softer, and so easier to find.

Often this blurring will be hardly noticeable, because we are seeing it through
a blurry material anyway, but there are also cases where this will lead to a
loss of detail in lighting.

(note that this is being committed to the tomato branch, mango will be using
this branch until feature freeze for 2.63 is over, then switch back)

Revision: 45693
Author:nazgul
Log Message:
Merging r45620 through r45692 from trunk into soc-2011-tomato
Revision: 45628
Author:nazgul
Log Message:
Camera tracking: initial commit of dopesheet view for clip editor:

- Changed regions to use the whole main region for such views as
  curves and dopesheet. This allows to have own panels with
  tools/properties in this areas.
- Active clip is getting synchronized between different clip editor
  editors in the same screen, so updating of curve/dopesheet views
  happens automatically when one changes current clip in one of this
  editors.
- Curves and dopesheet are still using PREVIEW region type instead of
  re-using main region.
- To deal with vertical synchronization in dopesheet, re-initialization
  of preview region happens.
- Panels in toolbox and properties panels are now separated to rely
  on current view mode, some operators and poll functions still need
  to be updated.
- Added new screen called "Movie Tracking" where layout is configured to
  display timeline, main clip window, curves and dopesheet.

Revision: 45627
Author:nazgul
Log Message:
Camera tracking: use texture buffers (if supported) to display clip editor frames

Initial idea was to perform bilinear filtering for displaying proxied frame
to make it looking a bit smoother. It was done but it was also discovered
that using such kind of texture buffers helps on some crappy videocards
when playing $k footage.

Revision: 45626
Author:nazgul
Log Message:
Camera tracking: revert changes made for texture buffer frame drawing.
Will be applied as another cleaned-up patch.

Revision: 45625
Author:nazgul
Log Message:
Camera tracking: if there's no image for current frame display
default grid and allow to interact with tracks for operators
which doesn't require image.

Revision: 45624
Author:nazgul
Log Message:
Camera tracking: support of tripod motion solving

Expose option into interface to use modal solver which currently
supports only tripod motion.

This solver requires two tracks at least to reconstruct motion.
Using more tracks aren't improving solution in general, just adds
instability into solution and slows down things a lot.

Refirement of camera intrinsics is supported by this solver.

To use this solver just activate "Tripod Motion" checkbox in
solver panel.

Revision: 45623
Author:nazgul
Log Message:
libmv: bundle new upstream version of libmv from own branch

Added modal solver module which is needed for tripod solving.
For details of this solver read changelog of libmv.

Revision: 45621
Author:nazgul
Log Message:
Merging r44227 through r45619 from trunk into soc-2011-tomato

Revision: 44230
Author:nazgul
Log Message:
Wring scaling and precision error in previous commit.

Revision: 44229
Author:nazgul
Log Message:
Proxies: FFmpeg proxy builder wasn't taking image quality into account at all
which made it using default quality settings which are really bad for camera
tracking (and perhaps for CSE too).

haven't found Jpeg quality setting for FFmpeg which will behave in the same way
as quality setting for image sequence, but seems that mapping image quality
from 1..100 UI range to 31..1 range of qmin/qmax gives expected result.

Revision: 44227
Author:nazgul
Log Message:
Merging r44140 through r44226 from trunk into soc-2011-tomato

Revision: 44152
Author:nazgul
Log Message:
Tomato: configurable filter type for 2d stabilization

Revision: 44151
Author:nazgul
Log Message:
Tomato: run aspect correction before stabilizing shot.

Revision: 44149
Author:nazgul
Log Message:
Tomato: fixed issue when track used for rotation stabilization points to a freed memory after re-tracking this track.

Revision: 44148
Author:nazgul
Log Message:
Tomato: fixed default value for pixel aspect.

Revision: 44147
Author:nazgul
Log Message:
Tomato: fixed incorrect auto-scale calculation for 2d stabilization

Revision: 44141
Author:nazgul
Log Message:
Tomato: fix for missing cache invalidation when disabling/enabling channels for stabilized shot

Revision: 44140
Author:nazgul
Log Message:
Merging r44129 through r44139 from trunk into soc-2011-tomato

Revision: 44134
Author:nazgul
Log Message:
Tomato: fixed incorrect behavior of textures buffer used in MCE together with 2d stabilization.

Revision: 44130
Author:nazgul
Log Message:
Camera tracking: animation datablock for MovieClip

Added AnimData block to MovieClip datablock which allows to animate different
properties in clip. Currently supports animation of stabilization influence only.

Revision: 44129
Author:nazgul
Log Message:
Merging r44109 through r44128 from trunk into soc-2011-tomato

Revision: 44109
Author:nazgul
Log Message:
Merging r44070 through r44108 from trunk into soc-2011-tomato

Revision: 44070
Author:nazgul
Log Message:
Merging r44003 through r44069 from trunk into soc-2011-tomato

Revision: 44003
Author:nazgul
Log Message:
Merging r43995 through r44002 from trunk into soc-2011-tomato

Revision: 43995
Author:nazgul
Log Message:
Merging r43952 through r43994 from trunk into soc-2011-tomato

Revision: 43956
Author:nazgul
Log Message:
Merging r43909 through r43951 from trunk into soc-2011-tomato

Revision: 43911
Author:nazgul
Log Message:
Merging r43871 through r43908 from trunk into soc-2011-tomato

Revision: 43873
Author:nazgul
Log Message:
Movie Clip Editor: implemented option to display frame using OpenGL textures

Initial idea was to perform bilinear filtering for displaying proxied frame
to make it looking a bit smoother. It was done but it was also discovered
that using such kind of texture buffers helps on some crappy videocards
when playing $k footage.

Currently check for NPOT support is disabled, so use this option with care.

Revision: 43872
Author:nazgul
Log Message:
Movie Clip Editor: cleanup of display panels

- Split display options into two panels:
  * Display, which contains all general display options related on editor itself
  * Marker Display, which contains options which makes sense for markers themselves
    and not used so often.
- Remove Show GPencil option which doesn't actually make sense because strokes might
  be disabled from GPencil panel
- Removed Show Pyramid option and show pyramid for KLT tracker as default.
- Added hotkey to toggle Show Disabled (Alt-D)
- Added hotkey to toggle Show Pattern (Alt-S)

Changes in interface and hotkeys are done by Sebastian Koenig.
Thanks for the patch!

Own changes in interface were related on Aspect Ratio. It doesn't make
much sense for tracking (camera pixel aspect is what you'll want to use,
but for masking it would make much more sense because when you just
want to create a mask for footage you don't actually have camera).
Just removing from interface seems not so nice for now.

Revision: 43871
Author:nazgul
Log Message:
Merging r43848 through r43870 from trunk into soc-2011-tomato

Revision: 43848
Author:nazgul
Log Message:
Merging r43721 through r43847 from trunk into soc-2011-tomato

Revision: 43721
Author:nazgul
Log Message:
Merging r43501 through r43720 form trunk into soc-2011-tomato

Revision: 43501
Author:nazgul
Log Message:
Merging r43130 through r43500 from trunk into soc-2011-tomato

Revision: 43131
Author:nazgul
Log Message:
Merging r43025 through r43129 from trunk into soc-2011-tomato

Revision: 43026
Author:nazgul
Log Message:
Sync changes from trunk

Revision: 43025
Author:nazgul
Log Message:
Merging r42945 through r43024 from trunk into soc-2011-tomato

Revision: 42945
Author:nazgul
Log Message:
Merging r42896 through r42944 from trunk into soc-2911-tomato

Revision: 42896
Author:nazgul
Log Message:
Merging r42800 through r42895 from trunk into soc-2011-tomato

Revision: 42801
Author:nazgul
Log Message:
Object tracking: various fixes for scene orientation for witness cameras workflow

Revision:42800
Author:nazgul
Log Message:
Merging r42770 through r42799 from trunk into soc-2011-tomato

Revision: 42770
Author:nazgul
Log Message:
Merging r42723 through r42769 from trunk into soc-2011-tomato

Revision: 42734
Author:nazgul
Log Message:
Object tracking: update of UI script

Forgot to include this changes in previous commit

Revision: 42733
Author:nazgul
Log Message:
Object tracking: configurable scale for object solution

Added slider to define scale of object solution which is used to define
"depth" of object relative to camera position. This slider effects on all
"users" of object solution such as bundles display, constrained objects and so.

Added new operator called "Set Solution Scale" to set real scale for object
solution based on real distance between two bundles reconstructed for this object.

New slider and operator can be found on "Object" panel in toolbox when in
reconstruction mode and active tracking object isn't a camera.

Revision: 42723
Author:nazgul
Log Message:
Merging r42648 through r42722 from trunk into soc-2011-tomato

Revision: 42710
Author:nazgul
Log Message:
Object tracking: scale object itself when setting scale in object tracking mode

Also fixed incorrect poll functions which didn't check active object when orienting object.

Revision: 42709
Author:nazgul
Log Message:
Object tracking: forgot to initialize inverted matrix for object solver constraint

Revision: 42655
Author:nazgul
Log Message:
Camera tracking: follow track + 3d position now respects camera orientation and object offset

Revision: 42654
Author:nazgul
Log Message:
Camera tracking: add camera to follow track and object solver constraint

Object used to be parented to active camera which isn't very convenient when
working with witness cameras.

Now parent camera can be specified in constraint (if it's not specified, active camera is used)

Revision: 42652
Author:nazgul
Log Message:
Object tracking: various fixes and improvements

- Bundles selection is now available for object's bundles
- If bundles selection wasn't changed in 3D viewport, fallback to regular
  object selection, so objects behind bundles can be selected
- Snap cursor to selection now respects object's bundle selection
- Object and rack name now can be selected from list in constraint settings
- Added preset for tracks used for object tracking

Revision: 42651
Author:nazgul
Log Message:
Object tracking fixes:
- Do not draw bundles for object for opengl selection
- Display reconstruction info for active object in cache line and graph editor

Revision: 42650
Author:nazgul
Log Message:
Object tracking: object with object solver constraint is now parented to scene's camera

Made Object Solver operator parent object to scene's camera. Behavior is pretty much
familiar to Child Of constraint -- it stores inverted transformation matrix which gives
constant offset in parent's space.
Current files would open incorrect, to make object aligned well again, just press
"Set Inverse" button in Object Solver constraint.
Fixed orientation operators so now they should work in all cases.
Also changed behavior of Set Origin operator which now sets origin to the median
point of all selected tracks/

Revision: 42649
Author:nazgul
Log Message:
Merging r42621 through r42647 from trunk into soc-2011-tomato

Revision: 42621
Author:nazgul
Log Message:
Merging r42602 through r42620 from trunk into soc-2011-tomato

Revision: 42602
Author:nazgul
Log Message:
Merging r42533 through r42601 from trunk into soc-2011-tomato

Revision:42533
Author:nazgul
Log Message:
Merging r42482 through r42532 from trunk into soc-2011-tomato

Revision: 42486
Author:nazgul
Log Message:
Disable markers when doing frame-by-frame tracking and tracker library returns failure

Revision: 42482
Author:nazgul
Log Message:
Merging r42461 through r42481 from trunk into soc-2011-tomato

Revision: 42472
Author:keir
Log Message:
Use bicubic interpolation for the tracker preview. It looks fantastic, but is slower, so we may have to make this an option instead of the only choice.

Revision: 42467
Author:nazgul
Log Message:
Make distortion panel be a bit more obvious label

Revision: 42461
Author:nazgul
Log Message:
Merging r42458 through r42460 from trunk into soc-2011-tomato

Revision: 42458
Author:nazgul
Log Message:
Merging r42442 through r42457 from trunk into soc-2011-tomato

Revision: 42446
Author:nazgul
Log Message:
Object tracking: fix setting axis in cases when object is scaled

Revision: 42444
Author:nazgul
Log Message:
Object solver: minor tweaks

- Rename solving button to Object Motion if active tracking object isn't a camera
- Ignore refine flags when solving object

Revision: 42443
Author:nazgul
Log Message:
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.

Revision: 42442
Author:nazgul
Log Message:
Merging r42413 through r42441 form trunk into soc-2011-tomato

Revision: 42418
Author:nazgul
Log Message:
Optimization of preview widget scaling.

Thanks to Campbell for pointing into issues.

Revision: 42414
Author:nazgul
Log Message:
Merging r42394 through r42412 form trunk into soc-2011-tomato

Revision: 42411
Author:nazgul
Log Message:
Fixed dark edges on preview widget sides: it was interpolating beyond the image bounds
 
Revision: 42407
Author:nazgul
Log Message:
Use own bilinear interpolation function for preview widget sampling

Solves issue with image clamping, but issue with dark edge is still present

Revision: 42400
Author:keir
Log Message:
Add minimum correlation widget to tracker default settings panel.

Revision: 42399
Author:keir
Log Message:
Remove an unused parameter from tracking.c

Revision: 42398
Author:keir
Log Message:
Turn grayscale preview on if any channel toggles are active for motion tracking.

Revision: 42397
Author:keir
Log Message:
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).

Revision:42395
Author:keir
Log Message:
Add a toggle button to display motion tracker previews in grayscale.

Revision: 42394
Author:nazgul
Log Message:
Merging r42350 through r42393 from trunk into soc-2011-tomato

Revision: 42393
Author:nazgul
Log Message:
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.

Revision: 42385
Author:keir
Log Message:
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.

Revision: 42384
Author:keir
Log Message:
Fix a segfault in the tracker caused by attempting a one-frame track after the

active tracker has become disabled.

Revision: 42383
Author:keir
Log Message:
Switch the tracker preview area to use bilinear filtering instead of nearest
neighbour. This makes it easier to align tracks.

Revision: 42379
Author:keir
Log Message:
Don't show the "Correlation" tracking preset when the hybrid tracker is selected.

Revision: 42378
Author:keir
Log Message:
Add a fix for compiling the brute force region tracker from libmv on Mac OS X.

Revision: 42376
Author:keir
Log Message:
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.

Revision: 42353
Author:nazgul
Log Message:
Tomato branch: restored nice splash screen :)

Revision: 42351
Author:nazgul
Log Message:
Merging r42193 through r42349 from trunk into soc-2011-tomato

Revision: 42212
Author:nazgul
Log Message:
Camera tracking: move margin, frames limit and adjust frames to per-track settings

Also replace adjust frames integer slider with menu to choose between matching
pattern from keyframe position of from previous frame. think this settings
wouldn't be so confusing now.

Revision: 42193
Author:nazgul
Log Message:
Merging r42178 through r42192 form trunk into soc-2011-tomato

Revision: 42186
Author:nazgul
Log Message:
Camera tracking: progress report clean-up

Send object which implements ProgressUpdateCallback to complete reconstruction
function rather than sending C-like procedure variable and context.

Revision: 42180
Author:nazgul
Log Message:
Camera tracking: presets for default tracking settings

Internal changes are almost finished, changes in the interface need to be discussed.

Revision: 42179
Author:nazgul
Log Message:
Merging r42160 through r42177 from trunk into soc-2011-tomato

Revision: 42161
Author:nazgul
Log Message:
Camera tracking: cleaned progress reporting stuff and made a bit more verbose

Revision: 42160
Author:nazgul
Log Message:
Merging r42062 through r42159 from trunk into soc-2011-tomato

Revision: 42067
Author:nazgul
Log Message:
Camera tracking: expose progress and status from camera solver into interface

Reporting progress isn't really accurate, but trying to make it more linear
can lead to spending more effort on it than having benefit. Also, changing
status in the information line helps to understand that blender isn't hang
up and solving is till working nicely.

Main changes in code:
- libmv_solveReconstruction now accepts additional parameters:

  * progress_update_callback - a function which is getting called
    from solver algorithm to report progress back to Blender.
  * callback_customdata - a user-defined context which is passing
    to progress_update_callback so progress can be updated in needed
    blender-side data structures.

  This parameters are optional.

- Added structure MovieTrackingStats which is placed in MovieTracking
  structure. It's supposed to be used for displaying information about
  different operations (currently it's only camera solver, but can be
  easily used for something else in the future) in clip editor.
  This statistics structure is getting allocated for time operator is
  working and not saving into .blend file.

- Clip Editor now displays statistics stored in MovieTrackingStats structure
  like it's done for rendering.

Revision: 42066
Author:nazgul
Log Message:
Camera tracking: moved camera solver into it's own job

In some cases solving can take a while (especially when refining is used)
and keeping interface locked is a bit annoying. Now camera solver is moved
to job system and interface isn't locking.

Currently, no progress is displaying in the interface and solving can't
be canceled. It'll be implemented separately (need some changes in libmv).

Revision: 42065
Author:nazgul
Log Message:
Camera tracking: refactor of tracks synchronization stuff

Currently this stuff is used for 2d tracking job only, but the same
thing would necessary for camera solver job, so moved it into more
general utility stuff.

Revision: 42063
Author:nazgul
Log Message:
Merging r41937 through r42061 from trunk into soc-2011-tomato

Revision: 42061
Author:nazgul
Log Message:
Added missed file

Revision: 41937
Author:nazgul
Log Message:
Re-copied trunk over tomato and merging r41929 through r41936 into tomato

Revision: 41936
Author:nazgul
Log Message:
Merged trunk up to rev41928

Revision: 41744
Author:nazgul
Log Message:
Camera tracking integration: interface cleanup and small renaming

- Move tracking-related constraints to own section in list
  Currently there are only two constraints, so can look a bit odd,
  but it'll be other constraints like "Object Solver" and so.
- Move motion-tracking parameters from 3D viewport Display panel
  to it's own panel.
- Get rid of "Bundle" in 3d viewport. It's quite obvious that it's
  a 3D representation of tracks is used in 3D viewport and it shouldn't
  be so confusing for artists now.
- Also get rid of "Bundle" in Follow Track constraint.
  Old files can change a bit because of changes in DNA.
- Also get rid of "Bundles" in operator which creates vertices cloud from 3D position of tracks.

Revision: 41726
Author:nazgul
Log Message:
Camera tracking integration: more code cleanup

Revision: 41725
Author:nazgul
Log Message:
Camera tracking integration: cleanup and finish some parts of recent commit

- Replace set of booleans with menu, so now you'll simply be unable to choose
  unsupported refine combination
- Some internal code cleanup and minor refactor

Revision:41693
Author:keir
Log Message:
Assorted camera tracker improvements

- Add support for refining the camera's intrinsic parameters
  during a solve. Currently, refining supports only the following
  combinations of intrinsic parameters:

    f
    f, cx, cy
    f, cx, cy, k1, k2
    f, k1
    f, k1, k2

  This is not the same as autocalibration, since the user must
  still make a reasonable initial guess about the focal length and
  other parameters, whereas true autocalibration would eliminate
  the need for the user specify intrinsic parameters at all.

  However, the solver works well with only rough guesses for the
  focal length, so perhaps full autocalibation is not that
  important.

  Adding support for the last two combinations, (f, k1) and (f,
  k1, k2) required changes to the library libmv depends on for
  bundle adjustment, SSBA. These changes should get ported
  upstream not just to libmv but to SSBA as well.

- Improved the region of convergence for bundle adjustment by
  increasing the number of Levenberg-Marquardt iterations from 50
  to 500. This way, the solver is able to crawl out of the bad
  local minima it gets stuck in when changing from, for example,
  bundling k1 and k2 to just k1 and resetting k2 to 0.

- Add several new region tracker implementations. A region tracker
  is a libmv concept, which refers to tracking a template image
  pattern through frames. The impact to end users is that tracking
  should "just work better". I am reserving a more detailed
  writeup, and maybe a paper, for later.

- Other libmv tweaks, such as detecting that a tracker is headed
  outside of the image bounds.

This includes several changes made directly to the libmv extern
code rather expecting to get those changes through normal libmv
channels, because I, the libmv BDFL, decided it was faster to work
on libmv directly in Blender, then later reverse-port the libmv
changes from Blender back into libmv trunk. The interesting part
is that I added a full Levenberg-Marquardt loop to the region
tracking code, which should lead to a more stable solutions. I
also added a hacky implementation of "Efficient Second-Order
Minimization" for tracking, which works nicely. A more detailed
quantitative evaluation will follow.

Revision: 41609
Author:nazgul
Log Message:
Camera tracking integration: Final pre-merge code clean-up

Revision: 41608
Author:nazgul
Log Message:
Merging r41597 through r41607 from trunk into soc-2011-tomato

Revision: 41598
Author:nazgul
Log Message:
Camera tracking integration
===========================

- Fixed to incorrect users count for clip datablocks when performing some

actions.
- Slight changes in used notifiers.

Revision: 41597
Author:nazgul
Log Message:
Merging r41564 through r41596 from trunk into soc-2011-tomato

Revision:41568
Author:nazgul
Log Message:
Camera tracking integration
===========================

Code cleanup and minor refactor. Moved some functions from movieclip.c to tracking.c due to they're operating on tracking data only.

Revision: 41567
Author:nazgul
Log Message:
Camera tracking integration
===========================

Hopefully last codereview issue fix: do not set movieclip ID block in init function of nodes.

Revision: 41566
Author:nazgul
Log Message:
Camera tracking integration
===========================

- Set as Background button will enable displaying background images in 3d space.
- Move options in Display panel to column. Saves some space.
- Camera solving now should deal fine with non-centered principal.

Revision: 41565
Author:nazgul
Log Message:
Merging r41555 through r41563 from trunk into soc-2011-tomato

Revision: 41556
Author:nazgul
Log Message:
Camera tracking integration
===========================

- Fix in rna description for pyramid level
- Unlock clip editor when deselecting all markers, deleting all marker
  or hiding them.
- Keep disabled marker when clearing upto/after so there'll be no
  estimated markers in this case which doesn't have much sense here.

Revision: 41555
Author:nazgul
Log Message:
Merging r41536 through r41554 from trunk into soc-2011-tomato

Revision: 41538
Author:nazgul
Log Message:
Camera tracking integration: post-merge compilation fix

Revision: 41536
Author:nazgul
Log Message:
Merging r41246 through r41535 from trunk into soc-2011-tomato

Revision: 41447
Author:blendix
Log Message:
Tomato: camera sensor changes

* Rename "FOV Mode" to "Sensor Fit"
* Add sensor height back in presets, default to Horizontal fit for all presets
  except Blender, which uses Automatic.
* Some UI tweaks

Revision: 41437
Author:nazgul
Log Message:
Camera tracking integration
===========================

Automated image sequence offset calculation for image input node and image editor.

Calculate offset or sequence when loading image in node or editor and also
re-calculate offset when switching currently displaying image in editor or
source image in input node. This kind of recalculation is needed because offset
is stored in ImageUser structure so when you're switching from one sequence to
another it can be really confusing because offset from previous sequence would
be used for new sequence.

NOTE: Not sure this commit is fine to be included in tomato merge commit,
      prefer to test it further and commit as separate change after merge.

 

Revision: 41417
Author:nazgul
Log Message:
Camera tracking integration
===========================

Split property used to define tracking camera focal length into two separated properties,
so now you can specify focal length in needed units directly without taking into account
units used for displaying.

Revision: 41416
Author:nazgul
Log Message:
Camera tracking integration
===========================

Remove moravec detector. It doesn't work really fine and it's times slower than fast detector.

Revision: 41414
Author:nazgul
Log Message:
Camera tracking integration
===================

26 Comments so far. Leave yours.
06:52 November 20th, 2011
26 . tungerz (builder)
Hiyas tek5828,
Everything is in the trunk builds now, Any recent builds will have camara tracking, Cycles, Ocean sim, and Dynamic paint :)
I did notice that nazgul still doing trunk merges into tomato, to keep it fresh and up to date :) So who knows whats down the road :)
Cheers,
~Tung
00:34 November 18th, 2011
Hey tungerz was wondering if there was going to be any more changes to this build? or all the new trackers stuff would be in a different one?
09:53 November 6th, 2011
24 . tungerz (builder)
Hiyas tek5828,
I asked nazgul about it and he agrees, it is annoying, he is going to discuss it with ideasman on best approach to fit blender design better.
Will add more on this later.
Cheers,
~Tung
22:50 November 5th, 2011
Hey tungz,

Is there any way to only use SAD. Because If i place a marker, change it to sad, any other markers placed from then on are KLT and I have to manually change each one to SAD.
Thanks
19:04 October 23rd, 2011
YESS THANKYOU!! SO MUCH, the "use settings from previous version." SO HELPFULL!
01:56 October 12th, 2011
Great work! Tomato was and is really on my wishlist. Finnaly I can create fx on movies! Thank you!

I wonder if it would be possible to use real time video streams as video input for the game engine. Combining cameras would be nice too.
07:59 September 26th, 2011
One thing Nazgul or tung, latest edit says

"Revision: 40564
Author:nazgul
Log Message:
Camera tracking integration
===========================

Renamed "Kayframe {1, 2}" to "Keyframe {A, B}""

You should also change the error note for when there is not enough tracks from "At least 10 tracks on both of keyframes are needed for reconstruction"
to, "10 active tracks are needed on keyframe B from A"

or worded better, just trying to state that the tracks on Keyframe A HAVE to be the same tracks on B, not new tracks to replace old dead ones later on.

cheers
13:00 September 7th, 2011
I love that there is distortion factored in. I used values from a demo version of Syntheyes, using a syntheyes chart. It gave me a value of -.0085 (not exactly a Zeiss Prime). Is that something I can just plug into the distortion value K1?
12:49 September 7th, 2011
This is so strong! To have these features in Blender is amazing. What a great work flow. So many features, so a strong release, so much more powerful and intuitive than using a third party application. Great great things.
I'm having problems using the reconstruction and getting square things square (windows on a second floor), but there is a lot I have to learn about the workflow, so I hesitate to ask for help on this. I also have some pretty extreme distortion on my zoom lens for the project I'm doing.
Here's the main thing. This is amazing work. Thank you. Thank you.
12:10 September 7th, 2011
I can confirm the problem of tek5828. I'm running this build on an regular (= legal) Windows 7 64 bit Professional and the detect features (for sure) and the tracking (very likely) are extremely slow compared to earlier builds (July - Early Augusts).

Also the number of detected features decreased a lot, therefore I have to manually add tracks and run detect features on multiple frames which is a pain when each feature detection needs about 5 min.

Also I've the feeling that the reconstruction is worse than before even though I admit this could be a result of the bad tracking result
07:22 September 1st, 2011
16 . tungerz (builder)
Hi tek5828,
I missed alot of builds and have to catch up on all of the logs but hope to soon, hope that this build works for ya :)
Cool effect on the window sils :) Great work!
Cheers,
~Tung
02:55 August 22nd, 2011
Hey Tungerz, just a quick problem, not sure if this is the right place for it,
but I'm using Windows 7 64bit Ultimate,

your previous r38578 worked well on my machine, downloaded this one today (r39568) and when selecting "detect features" after importing a video (.mov), the program hangs for awhile (1-5 minutes) while in the old version was pretty much instantaneous.

Just thought you might have an answer, thanks for your efforts!

tek-

p.s. another new video (jets landing on my window cil!)

http://www.youtube.com/watch?v=zP6s5D4V21M
11:23 August 6th, 2011
14 . tungerz (builder)
Hi Tek5828,
Great job :) awesome tracking, cant wait to see more of your work :)
Happy Blending and Tracking :)
Cheers,
~Tung
03:12 August 6th, 2011
IT IS AWESOME, just soo good. BUT- when i first used it I thought there was a bug, it would only track 40 frames, through experimentation I found out it needs to be super smooth, so if possible use a mount for your camera (something to hold on)

anyway, finally after weeks of practice I got it to track a long enough section, here it is

http://www.youtube.com/watch?v=Fk0f_g-9a-o
19:47 July 23rd, 2011
12 . tungerz (builder)
Hi Swesen,
Nazgul fixed this bug, I didn't have time to build before work.
It should be fixed in my build tomorrow.
Cheers,
~Tung
20:58 July 22nd, 2011
It seems like I can't see the bundles when in camera view.
04:33 July 13th, 2011
could someone please build a 32 bit version, i am dieing to test these new features!
13:41 July 10th, 2011
tungerz,
Thanks a lot! I'm downloading it right now and can't wait to test it.... I tried it, and it doesn't run, I'm afraid. It's a "not a Win 32 application" error. Thanks anyway for your effort. I just want to track one little thing now, maybe I'll just do it manualy. After two weeks I will have more work that requires tracking. Maybe a 32 build of Tomato Branch will be done by that date. Thanks again tungerz, It's not easy to find people actually willing to help. Oh, I forgot, I'm on one of Blender forums :). There are plenty of helpful guys in this community :).
12:28 July 9th, 2011
Hmmm... the last 32 bit revision of Tomato Branch is 38038 :/ It doesn't seem to work.
01:17 July 9th, 2011
tungerz,
That's great. Thanks for the link. I'm gonna actually use Tomato Branch in my production video today. I will post the results somewhere, as soon as I can (that means as soon as my producer will allow me to post something ;).
13:18 July 8th, 2011
6 . tungerz (builder)
SeriousM,
Yes they do have to be set on the first frame, still early development, down the road there may be multible frame entries :)

MSZ,
Ahh cool I see what your saying that would be awesome dual vidz tracked in scenes. demohero has x32 builds here... http://www.graphicall.org/demohero all different flavors for you to try.
10:08 July 8th, 2011
Hi tungerz,
No, I didn't mean rotoscoping. I mean motion capture. I think it would be possible. Imagine a ball moving in 3d space. You could capture it's movement with several cameras, and then track it with the same library used for developing Tomato Branch. The key difference here is to use several video "inputs" and connect markers between those inputs. For example you have 2 video inputs (two cameras = two videos) - one for X and Y axis and one for Z axis. Then you track the ball movement on each video. It's probalby even possible now if you do it step by step (one video first, and the other after). But if you could tell blender, that you are tracking the same object on two videos, it would be somehow easier.

And a little off topic thing: could someone build the Tomato Branch for Win32 please? I'm still on 32 bit Win XP and I cannot play with TB :/.
09:23 July 8th, 2011
Hi tungerz,
it seems that the markers have to set on the first frame, i tried to insert a marker in the moddle of the movie^^.
07:08 July 8th, 2011
3 . tungerz (builder)
Hi SeriousM,
I remember seeing in one of the tutorials linked above that you may have to scale the marker up or it could lose track. and it also seems that there is also another work around to, in another vid.

Hi MSZ,
Like rotoscoping? François Tarlier used this technique in a video bove.
07:01 July 8th, 2011
Hi there guys! Just a quick idea for future development. It looks, like you could expand your camera tracking to motion capture. Maybe if you would record the movie from several cameras it would be possible to add the same markers on different video files (connect markers somehow) and track movement of an actor?
02:55 July 8th, 2011
For some reason my markers got disabled every time i try to track. This occurs even with easy-to-track markers.
Feeling talkative?
Log in to leave a comment.