Commit Graph

2082 Commits

Author SHA1 Message Date
Sergey Sharybin
87a1d2935a Merging r49287 through r49299 from trunk into soc-2011-tomato 2012-07-27 15:12:58 +00:00
Campbell Barton
d623454d2e add missing image/mask restore call when undo'ing 2012-07-27 13:24:08 +00:00
Campbell Barton
fc0bf22186 svn merge ^/trunk/blender -r49263:49280 2012-07-27 10:27:28 +00:00
Campbell Barton
b8d96bc011 mask motion blur shutter option 2012-07-27 10:20:36 +00:00
Campbell Barton
65f94b8c0b svn merge ^/trunk/blender -r49177:49186 2012-07-24 21:11:22 +00:00
Campbell Barton
d9dbea1836 move mask and draw settings into its own struct to be shared between spaces. 2012-07-24 20:33:55 +00:00
Campbell Barton
ad4738e77f svn merge ^/trunk/blender -r49118:49143 2012-07-23 15:03:54 +00:00
Joshua Leung
e92fea3efb Bugfix [#32155] Driver error saves in file and isnt reset on load
Error flags set on Drivers and F-Curves when they can't be evaluated or flushed
properly are now cleared when loading files, allowing drivers to be re-evaluated
when a file is reloaded. This means that if a driver couldn't be used in the
previous session due to the set of extension modules active at the time (and was
thus disabled), reloading the file with the necessary extensions loaded means
that the driver can work out of the box without manually re-enabling.
2012-07-23 12:10:02 +00:00
Campbell Barton
43fede9519 svn merge ^/trunk/blender -r48986:48991 2012-07-17 09:58:20 +00:00
Campbell Barton
32cf7fcdb1 code cleanup: spelling 2012-07-16 23:23:33 +00:00
Sergey Sharybin
bb09f856df Merging r48862 through r48868 from trunk into soc-2011-tomato 2012-07-12 17:19:54 +00:00
Sergey Sharybin
ba44250a23 Fix #32067: since BMesh, files < 2.59.3 no longer have their texface converted
Issue was caused by performing conversion from FTFaces to materials from
the end of lib_link_mesh, where tesselated faces were cleared already.

This conversion can't be switched to BMesh structures because in future
MTexPolys could be changed in a way, that versioning stuff wouldn't work
any more. Another issue is that making such a conversion per-mesh would
lead to quite a code spagetti, which is difficult to follow.

Solved by splitting per-mesh cycle in lib_link_mesh, so now it consists
of three steps:

- Do linking stuff such as custom data layers, materials. Perform a
  Conversion stuff like tessface -> polys.

- Convert all MTFaces to materials. This conversion handles all meshes
  and creates needed materials.

- Free tessfaces, mark mesh as linked.

Such a separation shouldn't noticeably affect on speed of linking.
2012-07-12 15:36:22 +00:00
Sergey Sharybin
8764e7507f Merging r48829 through r48861 from trunk into soc-2011-tomato 2012-07-12 12:12:21 +00:00
Sergey Sharybin
92119982cb Fix #32082: face textures lost when linking scene from another file
Issue was caused by missing expand for MTexPoly-s tpages.
2012-07-12 07:30:50 +00:00
Sergey Sharybin
6f6471a864 Merging r48810 through r48812 from trunk into soc-2011-tomato 2012-07-10 15:47:39 +00:00
Sergey Sharybin
f279576f1a Bump Blender version, so despill balance would stay untouched in
rare cases when it was intentionally set to 0.
2012-07-10 15:35:25 +00:00
Sergey Sharybin
ba8154e24a Keying screen: small fixes and improvements from tomato
- Fixed issues with calculating matte with balance != 0.5
  It used to be used concave combination of minimal and maximal
  channel values which could be inpredictable.
  Use concave combination of two non-major channels sorted
  by their index, so such combination would always use the same
  coefficients for particular non-major channels.

- Added despill balance slider which defines balance between
  non-major channels used for calculating average of two
  colors. Difference between average value and pixel value of
  major screen channel defines amount of despill. Balance of
  0.5 gives the same behavior as it was before this slider
  was added.

---
svn merge -r48678:48679 -r48789:48790 ^/branches/soc-2011-tomato
2012-07-10 14:53:36 +00:00
Sergey Sharybin
63ad458dba Tomato: fix typos in mask maps used for raster cache 2012-07-10 09:12:21 +00:00
Sergey Sharybin
d1c335ad79 Tomato keying screen: small fixes and improvements
- Fixed issues with calculating matte with balance != 0.5
  It used to be used concave combination of minimal and maximal
  channel values which could be inpredictable.
  Use concave combination of two non-major channels sorted
  by their index, so such combination would always use the same
  coefficients for particular non-major channels.

- Added despill balance slider which defines balance between
  non-major channels used for calculating average of two
  colors. Difference between average value and pixel value of
  major screen channel defines amount of despill. Balance of
  0.5 gives the same behavior as it was before this slider
  was added.
2012-07-06 12:59:00 +00:00
Sergey Sharybin
d51297421d Tomato: hack to cache result of rasterization
It shall be removed as soon as tile-based rasterization is here,
but to remove current stoppers should be fine.
2012-07-03 14:30:55 +00:00
Campbell Barton
1fb0ecb9bb svn merge ^/trunk/blender -r48527:48537 2012-07-03 14:05:18 +00:00
Joshua Leung
44ca0a4328 Fix for the "black F-Curves" bug on undo
(From personal stash of bugs - since early 2.5 versions)

F-Curve colors get applied only on Graph Editor "refresh()". In some cases, undo
was reverting back to a state where the colors had not yet been set. In these
cases, there would be no refresh() after that undo (until expanding a channel or
some other similar action), resulting in "black F-Curves" appearing. So, now we
force such an update after undo to ensure that the curves never display black.

(Noticed while investigating another bug for Mango related to
CLIP_OT_constraint_to_fcurve not sending notifiers required when new F-Curves
are added)
2012-07-03 13:47:13 +00:00
Sergey Sharybin
11b0e4866e Merging r48470 through r48489 from trunk into soc-2011-tomato 2012-07-02 11:29:55 +00:00
Sergey Sharybin
ccf8c835ba Fix #31961: Grease Pencil in VSE don't save the data
Issue was caused by linking to grease pencil from direct_link* function
which lead to NULL GP data because it's being read a way later.

Link to GP data in lib_link* instead.
2012-07-02 08:30:29 +00:00
Campbell Barton
5a803b7edf svn merge ^/trunk/blender -r48415:48469 2012-07-01 15:39:02 +00:00
Campbell Barton
8b865c01cd style cleanup: comments 2012-06-30 22:49:33 +00:00
Sergey Sharybin
53bb66e291 Move color management check stuff from blo_read_file_internal to setup_app_data 2012-06-28 10:05:22 +00:00
Campbell Barton
41ff120e65 fix for segfault on undo because of loading color profile info. 2012-06-28 09:18:07 +00:00
Sergey Sharybin
8f8d7f586a Clean-up and refactor of current OCIO integration
- Cleaned up some files -- seems there were some wrongly resolved
  conflicts which resulted into duplicated code in space_image.py
  and some build configuration files.
- Store all color space related data (such as display device, view
  transform and so) as strings, so it could easily be ported to new
  OCIO configuration files and it'll be much more portable between
  different configurations.

  This required adding some look-ups to RNA associated with such
  settings, but it's indeed the only way to do this. If it'll be
  figured out such look-ups causes performance issues it's possible
  to optimize this further using hash. So far it's only few elements
  in list to be looked up.
- Added support of display device transformation from OCIO
  configuration files. Display device is setting per-window and
  different windows could have different display devices, so it's
  possible to have one blender window opened on sRGB monitor and
  another one on xyz projector.

  Display device is ignored when using ACES ODT Tonecurve view
  transform due to it's not an OCIO transformation. Probably it'll
  be possible to get rid of this tone curve soon (if it'll be
  proved useless or it'll be implemented as a part of OCIO LUT).
- Movie Cache now supports deleter functions for user keys, so
  such keys could have some allocated data which would be removed
  as soon as element in cache is being removed.
- Movie Cache now support callbacks to check whether current
  cache element could be removed from a cache due to it wouldn't
  be accessed anymore.
- Re-written cache stuff for display buffers of ImBuf. Now it's
  using Movie Cache which is global for all ImBufs.

  Probably it's not implemented in fastest way, would be investigated
  further and probably changed it performance wouldn't be good enough.
2012-06-27 18:10:53 +00:00
Campbell Barton
fae0b2068b falloff options for dilate/erode feather compo node. 2012-06-21 07:45:41 +00:00
Mitchell Stokes
7ef54879ed Fix for properly converting 2.4x IPO Actuators to 2.6x Action Actuators. Previously the converted Action Actuators would not have an action assigned. This fix is based on code provided by Maxim Aleynikov in his report: [#30410] not full conversion IPO Actuator in Action Actuator. 2012-06-21 06:27:51 +00:00
Lukas Toenne
fbbd64a118 Fix #31646, somehow a 2.62 file output node can have NULL storage pointer. Not sure how this can happen, but added checks in do_versions to make sure the file doesn't crash. Paths will probably have to be reset though. 2012-06-19 07:46:45 +00:00
Brecht Van Lommel
76f79b030f Fix for recent bugfix, make old files with strand width fade 2.0 render same. 2012-06-18 12:49:05 +00:00
Sergey Sharybin
f0c724219d Internal refactoring of tracking module, should be no functional changes
- Re-arrange functions in headers and implementation file to make them
  more grouped by entity they're operating with. Also order of functions
  in implementation file should match order of functions in header for
  easier navigation.

- Rename some functions to match conventions of naming public functions.
- Some code de-duplication, still some room for improvements tho.
- Split main 2D tracking functions into smaller steps to make it more clear.

Accidentally OpenMP was disabled in some of previous commits, re-enable it.
2012-06-15 11:03:23 +00:00
Joshua Leung
c2e55ae8e3 Bugfix [#28962] Changing actions via undo/delete all keyframes lacks UI refresh
Slightly hacky fix to get updates working for Action Editor header when there
are changes of the active action (via undo and/or deleting all keyframes at
once). Since the action referenced by the editor only gets updated when anim
channel filtering (e.g. as a result of the channel syncing operation) is
invoked. Added comments noting where these updates actually occur
2012-06-11 04:13:39 +00:00
Joshua Leung
a050d23133 Bugfix: Crash in Sequencer when trying to undo after using Grease Pencil
Grease Pencil data was not getting correctly relinked after file reload (for
undo)
2012-06-11 03:03:36 +00:00
Joshua Leung
be7d15cc2b Commented out expand_bones(), as this wasn't actually doing anything other than
wasting time traversing the list of bones in the Armature
2012-06-11 02:23:26 +00:00
Sergey Sharybin
ff5875f1c1 Bump subversion so iteration through all markers would happen
only for old files which actually needs to be ported to 4 corners
representation.
2012-06-10 15:28:37 +00:00
Sergey Sharybin
25bb441301 Planar tracking support for motion tracking
===========================================

Major list of changes done in tomato branch:

- Add a planar tracking implementation to libmv
  This adds a new planar tracking implementation to libmv. The
  tracker is based on Ceres[1], the new nonlinear minimizer that
  myself and Sameer released from Google as open source. Since
  the motion model is more involved, the interface is
  different than the RegionTracker interface used previously
  in Blender.

  The start of a C API in libmv-capi.{cpp,h} is also included.

- Migrate from pat_{min,max} for markers to 4 corners representation

  Convert markers in the movie clip editor / 2D tracker from using
  pat_min and pat_max notation to using the a more general, 4-corner
  representation.

  There is still considerable porting work to do; in particular
  sliding from preview widget does not work correct for rotated
  markers.

  All other areas should be ported to new representation:

  * Added support of sliding individual corners. LMB slide + Ctrl
    would scale the whole pattern
  * S would scale the whole marker, S-S would scale pattern only
  * Added support of marker's rotation which is currently rotates
    only patterns around their centers or all markers around median,

    Rotation or other non-translation/scaling transformation of search
    area doesn't make sense.

  * Track Preview widget would display transformed pattern which
    libmv actually operates with.

- "Efficient Second-order Minimization" for the planar tracker

  This implements the "Efficient Second-order Minimization"
  scheme, as supported by the existing translation tracker.
  This increases the amount of per-iteration work, but
  decreases the number of iterations required to converge and
  also increases the size of the basin of attraction for the
  optimization.

- Remove the use of the legacy RegionTracker API from Blender,
  and replaces it with the new TrackRegion API. This also
  adds several features to the planar tracker in libmv:

  * Do a brute-force initialization of tracking similar to "Hybrid"
    mode in the stable release, but using all floats. This is slower
    but more accurate. It is still necessary to evaluate if the
    performance loss is worth it. In particular, this change is
    necessary to support high bit depth imagery.

  * Add support for masks over the search window. This is a step
    towards supporting user-defined tracker masks. The tracker masks
    will make it easy for users to make a mask for e.g. a ball.

    Not exposed into interface yet/

  * Add Pearson product moment correlation coefficient checking (aka
    "Correlation" in the UI. This causes tracking failure if the
    tracked patch is not linearly related to the template.

  * Add support for warping a few points in addition to the supplied
    points. This is useful because the tracking code deliberately
    does not expose the underlying warp representation. Instead,
    warps are specified in an aparametric way via the correspondences.

- Replace the old style tracker configuration panel with the
  new planar tracking panel. From a users perspective, this means:

  * The old "tracking algorithm" picker is gone. There is only 1
    algorithm now. We may revisit this later, but I would much
    prefer to have only 1 algorithm. So far no optimization work
    has been done so the speed is not there yet.

  * There is now a dropdown to select the motion model. Choices:

        * Translation
        * Translation, rotation
        * Translation, scale
        * Translation, rotation, scale
        * Affine
        * Perspective

  * The old "Hybrid" mode is gone; instead there is a toggle to
    enable or disable translation-only tracker initialization. This
    is the equivalent of the hyrbid mode before, but rewritten to work
    with the new planar tracking modes.

  * The pyramid levels setting is gone. At a future date, the planar
    tracker will decide to use pyramids or not automatically. The
    pyramid setting was ultimately a mistake; with the brute force
    initialization it is unnecessary.

- Add light-normalized tracking

  Added the ability to normalize patterns by their average value while
  tracking, to make them invariant to global illumination changes.

Additional details could be found at wiki page [2]

  [1] http://code.google.com/p/ceres-solver
  [2] http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Motion_Tracker
2012-06-10 15:28:19 +00:00
Sergey Sharybin
39e591d3d0 Support for per-track Grease Pencil datablocks for motion tracking
Originally was needed to reach easy way of defining masks used for tracking
(do eliminate textures which doesn't belong to feature when tracking.

Implemented as alternative to GP datablock for clip and added switch between
per-clip and per-track GP datablocks -- internal limitations of GP doesn't
allow to display all GP datablocks easily.  So either you see.edit GP associated
with clip or with track.

GP strokes associated with track are relative to track's position, following
tracks during tracking and could be shared between several tracks.

Masking code presents in libmv and there's rasterizer of GP datablocks for
masks in blender's tracking module, but they still need to be glued together.

Some documentation cound be found at this page:

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Motion_Tracker#Grease_Pencil
2012-06-10 15:26:50 +00:00
Campbell Barton
bdf9e02346 new sequence strip type for masks. 2012-06-07 18:24:36 +00:00
Campbell Barton
105b1031dd code cleanup: rename sequencer types to SEQ_TYPE_*** and use enums rather then defines. 2012-06-07 15:49:02 +00:00
Sergey Sharybin
a99b9a5c3d Fix #31725: UV map order is ignored when opening in 2.6+ versions
Issue was caused by do_versions being used pdata as reference for active/render/
stencil/clone layer indices instead of fdata.

Added some utility functions used only by do_versions to be sure this indices
are set from fdata for pre-bmesh files.
2012-06-07 09:11:16 +00:00
Sergey Sharybin
f43a733f59 Changed semantic of recently added start_frame
Now it's indicates at which scene frame number movie clip starts playing back.
This this setting is still belongs to clip datavlock and used by all users of
clip such as movie compositor nodes, constraints and so.

After long discussion and thoughts about this it was decided that this would
match image's current behavior (which initially seen a bit crappy), but that's
actually allows:

- Keep semantics of start frame in image and clip datablocks in sync
- Allows to support features like support of loading image sequences
  with crappy numbers in suffix which doesn't fit long int.
- Allows to eliminate extra boolean checkbox to control such kind of offset.

Hopefully from pipeline POV it wouldn't hurt because idea of having this things
implemented in original way was  working only if sequence before processing
started naming form 001.
2012-06-06 18:58:30 +00:00
Campbell Barton
1931aac1f7 style cleanup: (indentation) 2012-06-06 14:48:39 +00:00
Lukas Toenne
67ba133b19 Fix #31706, Crash loading old file in trunk build. 2012-06-05 08:06:15 +00:00
Campbell Barton
5189356d58 style cleanup 2012-06-04 20:11:09 +00:00
Brecht Van Lommel
4e338e894f Cycles: support for image sequences in image/environment texture node. 2012-06-04 19:38:33 +00:00
Campbell Barton
68a9dd54ec mask mode for clip editor developed by Sergey Sharybin, Pete Larabell and myself.
see:
http://wiki.blender.org/index.php/User:Nazg-gul/MaskEditor


note - mask editing tools need continued development, feather option is not working 100%
2012-06-04 16:42:58 +00:00
Brecht Van Lommel
eae64f9a0c Antoher fix for library linking issues, must change all entries in the libmap,
not just the first one.
2012-06-04 16:10:20 +00:00