Age | Commit message (Collapse) | Author |
|
The planar tracker uses Ceres for the refinement stage. During
refinement, Ceres iteratively updates the parameters with the
latest best guess. If the change in the parameters falls below a
threshold, Ceres will abort successfully ("converged").
For the case of pure translation tracking, the parameters are
exactly the two pixel shifts (dx, dy), and measuring the change in
these parameters gives a meaningful termination criterion.
However, for all the other parameterizations like affine, where
the parameterization involves affine parameters that have no
physical interpretation, Ceres is left with no way to terminate
the solver early. With the existing code, often many iterations
are run long after Ceres has found a solution sufficiently
accurate for all tracking needs. No one needs tracking with
a quadrillionth of a pixel accuracy; that time is wasted.
This patch extends the existing iteration callback that is passed
in to Ceres to check if the pattern has fallen out of the search
window, to also check if the optimizer has made a tiny step. In
particular, if the maximum shift of any patch corner between two
successful optimizer steps is less than a threshold (currently
0.005 pixels), the track is declared successful and tracking
is terminated.
This leads to dramatic speed increases in some cases, with little
to no loss in track quality. This is especially apparent when
tracking patches with affine or perspective motion models. For
example, on some tracking cases I tried, the iterations Ceres took
went from 50 to 3.
|
|
|
|
or good to keep for completeness. quieted some warnings and add flags -Wmissing-include-dirs and -Wno-div-by-zero to cmake/gcc
|
|
non-primitive types - recommended for non primitive types.
|
|
values.
|
|
to avoid compositing issues. The values can go out of bounds due to sharp
pixel filters.
In Cycles the alpha channel is already clamped, and there are no pixel filters
that could cause negative RGB values.
|
|
|
|
but should not crash either. This fix is more of a workaround, the crash seems
to be in openimageio or one of the libraries it uses.
|
|
The planar tracker did not detect very skinny patches which have
effectively zero area and are untrackable. This adds detection and
rejection of patterns with zero area. This fixes a crash found by
during Mango production.
|
|
Sergey originally left a TODO() here, but his fix is the correct
one. I removed the TODO and fixed some comment issues.
|
|
Now use default byte/float colorspace when creating new image.
|
|
working in all cases.
Also cleaned some old, no more used piece of code.
|
|
for whichever reason
|
|
area. Also header tools entries are now translatable!
|
|
|
|
|
|
Use object_get_derived_final() function instead of accessing to object's
derived final directly.
The same happens for shrinkwrap constraint and it should deal better in
cases when depth object is in edit mode. In other cases should be no
functional changes.
|
|
It should be pretty safe change which would allow doing stuff like
python-defined tracking routines without need to update the whole
scene when it's needed to perform some operation on different clip
frame.
It'll be possible to write operators similar to tracking, which
updates space clip's frame number, but not scene frame when tracking
and only synchronizes scene frame number on operator finish.
|
|
same update as loading .blend or switching layer visibility.
|
|
textures.
|
|
|
|
Also don't color manage data buffers in texture painting.
Makes it possible to view heights and normal maps in proper space
and also paint on them without applying extra transformation.
|
|
It was an Abort() caused by check for solver result not equal to USER_ABORT.
In some cases solver returns USER_ABORT due to BoundaryCheckingCallback
detects coordinates does not belong to image.
Somehow this callback wasn't called in previous version of Ceres and
in the same case marker was jumping. Now when the callback is called
it seems we could simply return failure of tracking without aborting
Blender.
Probably this is in fact some issue somewhere else, would double
check with Keir about this.
|
|
|
|
joining absolute shapekeys now sorts by time.
|
|
|
|
also remove some redundant code.
|
|
fail, same fix was made for txt_undo_read_unicode() recently.
|
|
not working at all.
|
|
|
|
assignments & checks, remove unused cruft.
also remove some other redundant checks.
|
|
buffer size so this wont happen again.
|
|
edges
|
|
configuration
Also fix some missing color spaces when loading some OCIO configurations, by falling
back to scene linear if role is not found. There can still be some errors in the
console, need to check this further.
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management#OpenColorIO_Configuration
|
|
View as Render enabled.
|
|
|
|
mipmaps.
While we could disable/enable mipmaps on stroke begin/end, it is a bit hacky (but worthy of consideration for later) for my taste just to paint in the image editor. Instead we generate mipmaps on the fly. Since we can update texture levels below the first only with GPU mipmapping, partial update when painting in the image editor will actually work only with GPU mipmapping from now on (which is fast enough I hope not to get any lags!).
|
|
|
|
|
|
to Edit Mode
joining meshes would allow shape key UID's not to be unique.
This was caused by join adding new key blocks inline, now use add_keyblock() like everywhere else does.
|
|
get rid of it.
|
|
overwritten.
useful when using --debug-fpe since this isnt and exceptional case.
|
|
invalidates render result display buffers.
|
|
Currently done as patch applied on bundling, would forward it to Ceres developers.
|
|
during a save or export operation
|
|
In some cases it was missed include of header file, in some other
cases symbol could be static.
|
|
save operator
In fact, color management settings shouldn't be editing from this operator since
screenshot is using OpenGL which is in sRGB space, but fixed issues with Image
Format initialization and added NULL pointer checks.
|
|
|
|
some warnings.
|
|
|