Commit Graph

5721 Commits

Author SHA1 Message Date
Sergey Sharybin
08c4aaa01b Camera tracking integration
===========================

Initial integration of proxies into movie clip editor.

Known issue: marker preview area uses proxyed image,
             hopefully fix would be available soon.
2011-08-08 12:18:32 +00:00
Sergey Sharybin
33e829819e Camera tracking integration
===========================

Commiting VSE-proxies patch from Peter Schlaile.

Description is here: http://lists.blender.org/pipermail/bf-committers/2011-May/032152.html
Git commit hash: baaecf244b83c70cb57e1bf6fdd51dd8591bde5b
2011-08-08 12:18:20 +00:00
Sergey Sharybin
cc2df8bfee Camera tracking integration
===========================

Corrected focal length initialization. Now it'll be 24mm, not 24px.
2011-08-07 16:10:14 +00:00
Sergey Sharybin
8c0fb2ad64 Camera tracking integration
===========================

Expose parameters for feature detection into redo panel.
2011-08-07 08:58:03 +00:00
Sergey Sharybin
462670b845 Merging r39050 through r39101 from trunk into soc-2011-tomato 2011-08-06 14:52:45 +00:00
Brecht Van Lommel
e6e4c7ef8b KEYMAP REFACTORING
Diff Keymaps

User edited keymaps now no longer override the builtin keymaps entirely, but
rather save only the difference and reapply those changes. This means they can
stay better in sync when the builtin keymaps change. The diff/patch algorithm
is not perfect, but better for the common case where only a few items are changed
rather than entire keymaps The main weakness is that if a builtin keymap item
changes, user modification of that item may need to be redone in some cases.

Keymap Editor

The most noticeable change here is that there is no longer an "Edit" button for
keymaps, all are editable immediately, but a "Restore" buttons shows for keymaps
and items that have been edited. Shortcuts for addons can also be edited in the
keymap editor. 

Addons

Addons now should only modify the new addon keyconfiguration, the keymap items
there will be added to the builtin ones for handling events, and not get lost
when starting new files. Example code of register/unregister:

km = wm.keyconfigs.addon.keymaps.new("3D View", space_type="VIEW_3D")
km.keymap_items.new('my.operator', 'ESC', 'PRESS')

km = wm.keyconfigs.addon.keymaps["3D View"]
km.keymap_items.remove(km.keymap_items["my.operator"])

Compatibility

The changes made are not forward compatible, i.e. if you save user preferences
with newer versions, older versions will not have key configuration changes that
were made.
2011-08-05 20:45:26 +00:00
Sergey Sharybin
da7851aabc Camera tracking integration
===========================

Interpolate camera location and orientation for frames
where's no reconstruction data.

This fixes motion blur compositor node (first and last camera's
position was at origin, so motion vector was totally incorrect).
2011-08-05 17:50:21 +00:00
Sergey Sharybin
2187d7e166 Camera tracking integration
===========================

Added back Scale factor for scene orientation in toolshelf.
But now it's used in a bit other way -- invoke function
checks if operator's property is set and if not -- value
set in toolshelf is used.
2011-08-05 11:43:09 +00:00
Sergey Sharybin
c56f6cda7e Camera tracking integration
===========================

Fixed possible errors with non-unique naming when syncking
currently tracking tracks with list of tracks used in clip.
2011-08-05 07:54:25 +00:00
Sergey Sharybin
6529882e9e Camera tracking integration
===========================

- Request from Sebastian/Francois: default lens
  for clip set to 24.0
- Added some additional camera presets from Francois request.
  Not sure all things from GENERIC section of that request
  would be actually useful.

  Probably the whole sensor size workflow would be changed...
2011-08-04 16:06:24 +00:00
Sergey Sharybin
1e7203ce07 Camera tracking integration
===========================

- Added function to calculate per-track average error.
  Made this in libmv c-api, probably should be ported
  to libmv pipeline.
- MovieTrackingTrack now holds average reprojection error
  which is displayed in Active Track panel and information
  text in clip editor (if displaying of names are enabled).
- Make "Clean Tracks" take average error on account.
2011-08-04 15:40:28 +00:00
Sergey Sharybin
6cc4952ca3 Camera tracking integration
===========================

- Fixed bug with resetting marker's flag for non-transforming
  tracks when canceling transformation.
- Fixed bug with keyframing non-selected tracks when initializing
  tracking tools.
- Changed selection policy: now invisible parts of marker
  can be selected.
- Added operator redo panel to Clip Editor.
- Set Scale operator now uses operator property for scale.
- Added operator "Clean Tracks" which currently checks if tracks
  are tracked long enough and can select bad tracks, delete them
  or delete tracking segments which are too short.
2011-08-04 14:39:37 +00:00
Sergey Sharybin
f56590a5f5 Camera tracking integration
===========================

- Fixed crash when Display->Stable is enabled before
  loading clip.
- Fixed bug with location influence on stabilization data.
2011-08-03 19:05:58 +00:00
Sergey Sharybin
a28867e172 Camera tracking integration
===========================

- Made naming in libmv-api more uniform.
- Move aspect ration detection of clip to movieclip.c.
- Remove unused width and height from camera intrinsics function.
- Reconstruction should now deal correct with aspect ratio.
2011-08-03 18:28:40 +00:00
Sergey Sharybin
f6ee6276a0 Camera tracking integration
===========================

Get rid of cachin logic in seqcache, switch it to use logic
from movie clip. Now only hash calculation and comparator
functions are declared in seqcache.
2011-08-03 14:04:33 +00:00
Sergey Sharybin
cf6c261cc8 Camera tracking integration
===========================

- Fixed some silly things ni DNA design. Now all
  reconstruction data is stored in Tracking->Reconstruction.
  Please, re-solve your cameras -- reconstruction data
  wouldn't be read from files saved in blender below this
  commit.
- RNA accessors for reconstruction data.
- Store average reconstruction error in new reconstruction
  structure and show it in clip editor header after
  reconstruction.
- Highlight failed to reconstruct frames with red in cache line.
- Added "group" "Failed Tracks" in Select Grouped operator,
  Meant to be used for selecting tracks bundles from which
  failed to to be solved.
- Hotkey to delete marker: Shift-X.
- Jump to next/prev failed frame operator. Hotkeys are
  Ctrl-Shift-Left/Right Arrow.
2011-08-02 18:25:18 +00:00
Sergey Sharybin
1694e5978a Merging r38898 through r38940 from trunk into soc-2011-tomato 2011-08-02 17:32:19 +00:00
Mike Erwin
dc2609da3d svn merge -r38814:38905 https://svn.blender.org/svnroot/bf-blender/trunk/blender . 2011-08-02 01:01:56 +00:00
Sergey Sharybin
b5716beef0 Camera tracking integration
===========================

- Do not show frame boundary border when stabilization isn't enabled.
- Separate stabilization settings from display in clip editor.
  Now clip can contain stabilization data but still be displayed
  un-stabilized in clip editor.
- Internal changes in stabilization:
  * Use separated location/scale parameters rather than 4x4 matrix.
    In some ares "decomposed" data is needed (text draw functions, i.e.).
    Also such decomposed data could be used in compositor.
  * MovieClip now uses own structure for cache where additional data
    can be stored. MovieCache structure now one of properties in
    this new structure.
  * Get rid of stable image buffer stored in MovieClipStabilization
    structure. Pre-created buffer for scaling still stored there.
    This helps to keep playback realtime -- re-creating this buffer
    introduces ~15% slowdown.
- Added sliders to 2D stabilization panel which controls intensity
  of translation/scale which applies on shot.
- Added filter type to Stabilize2D compositor node. Supports nearest,
  bilinear and bicubic interpolation.
- After discussion with Sebastian and Francois added new node called
  Transformation. It can apply translation, rotation and scale. It's
  not the same thing as applying this components separately -- all
  transformation is happening inside "canvas". And it should be more
  accurate on interpolation and sub-pixel translation.
  Need to check order of applying translation/scale/rotation btw.
- Added output sockets to movie clip compositor node. They holds
  stabilization data which can be used by Translate or Transform
  nodes.
- Minor fix of UI issues in Display panel.
2011-08-01 15:28:19 +00:00
Sergey Sharybin
e9b3225b8d Merging r38832 through r38897 from trunk into soc-2011-tomato 2011-08-01 15:24:15 +00:00
Campbell Barton
cd793378db fix [#28112] Vertex paint crash 2011-08-01 06:50:24 +00:00
Campbell Barton
af39f26360 fix, uvproject modifier wasn't copying the uv layer name,
also edit var names from recent commit to better fit with other functions.
2011-08-01 05:25:30 +00:00
Campbell Barton
9da712a581 replace dutch variable name 'aantal' with 'tot' 2011-08-01 02:58:44 +00:00
Campbell Barton
f48b906261 fix for failure to create curve knots when both endpoint and bezier U were enabled.
use default when invalid settings given.

removed odd/annoying bit shifting of the flagu/v for such basic function made code hard to understand and would fail if new flags were added.
2011-08-01 02:52:08 +00:00
Campbell Barton
c74bb09584 fix for material slot removal (r38879)
- The object ID was being passed to the data_delete_material_index_id() from object_remove_material_slot(), rather then the object data. (so the material slot fix wouldnt run in that case).
- add support for fixing text object materials too.
2011-07-31 12:43:41 +00:00
Dalai Felinto
432bd158fb bugfix [#28111] material.pop breaks mt->mat_nr
create a new parameter for materials.pop() to not remove material slot.
this way the mat_nr is still the old one.

for the default behaviour we now have material remapping (i.e. data_delete_material_index_id(id, index)).
This new function is brought from the material_slot remove function.
2011-07-31 11:12:38 +00:00
Nicholas Bishop
6c3bb8b903 EditMesh-based skin node drawing 2011-07-31 02:03:48 +00:00
Nicholas Bishop
cff57b14a1 Imported bsphere.c, mostly ifdef'd out for now 2011-07-31 02:03:39 +00:00
Nicholas Bishop
601eb68420 Added SkinNode DNA and customdata. 2011-07-31 02:03:21 +00:00
Sergey Sharybin
197595125f Camera tracking integration
===========================

- Fixed occasional crash caused by conflicting access
  to non-threadsafe moviecache. Added lock on movie clip
  ibuf acquire level.
- A bit nicer feedback from libmv when doing reconstruction.
  Now if all tracks and frames were reconstructed average
  error would be reported in "notification area".
  If there's something failed to be reconstructed warning
  message would appear and failed items would be printed to
  the console.
2011-07-30 17:14:07 +00:00
Sergey Sharybin
b6b4164a70 Merging r38819 through r38831 from trunk into soc-2011-tomato 2011-07-29 21:14:20 +00:00
Thomas Dinges
6a27da310c While looking at the bug report, found some more issues...
This is the result of RNA renaming at it's glance. ;-)
2011-07-29 20:59:46 +00:00
Sergey Sharybin
09a19c8b37 Camera tracking integration
===========================

Changed behavior of 2D stabilization:

- Fixed epic spelling error.
- Neither 3d viewport nor MovieClip compositor input node
  are using stable footage now.
- Now one thread lock can be avoided -- stable shot
  isn't acquiring from several threads.
- Added compositor noe Distort->Stabilize 2D which is
  supposed to stabilize "incoming" image using movie clip
  block as reference.

Probably it could be useful to define MAT4 socket type and
use it in MovieClip node as output for stabilization and
as input socket for Stabilization node so relation could be
easily visible on "graph".
2011-07-29 20:55:23 +00:00
Thomas Dinges
99997ccd18 Fix for [#28117] Diffuse reflection IPO curve not imported correctly from 2.49b files 2011-07-29 20:46:30 +00:00
Sergey Sharybin
7befe79f81 Camera tracking integration
===========================

Fixed segfault when turning stabilization on when there's
no compositing tree.
2011-07-29 15:47:09 +00:00
Sergey Sharybin
6745e45c48 Camera tracking integration
===========================

Implemented 2D stabilization:

- Based on average point of several tracks.
- Tracks for stabilization are controllable from
  "2D stabilization" panel.
- Implemented autoscaling. Could fail if average point is
  too close to frame boundary.
- Background clip in 3D viewport and MovieClip input
  compositor nodes are using stable shot.

Some internal weak things:
- Stable shots aren't cached in moviecache. There is
  only one "slot" for stable shot inside stabilization
  structure.
- This could fail if several threads are requested different
  frames (for example when starting playback, pause to make
  Nodes Editor trigger refresh, continue playback).
- Due to it shouldn't crash i decided to implement better
  caching for stable shots a bit later.
2011-07-29 15:25:00 +00:00
Sergey Sharybin
feffc920bb Merging r38780 through r38818 from trunk into soc-2011-tomato 2011-07-29 15:18:14 +00:00
Nathan Letwory
24def76ac8 svn merge -r38753:38813 https://svn.blender.org/svnroot/bf-blender/trunk/blender . 2011-07-29 07:58:03 +00:00
Sergey Sharybin
2dc826f083 New option for multires modifier: Subdivide UVs
Enabled by default and also enabled for older filesm so
there should be no regressions.

In some cases it's useful to not use subdivided uvs for multires.
2011-07-28 11:16:10 +00:00
Sergey Sharybin
e2566984ed Merging r38733 through r38779 from trunk into soc-2011-tomato 2011-07-28 11:01:38 +00:00
Dalai Felinto
f532ccedf5 refix for #27912: crash after mesh.materials.pop() (fixed wrongly on rev. 38299 - patch by Benoit Boilsee
bug spotted while reviewing a patch.
things are working now
2011-07-27 20:36:11 +00:00
Campbell Barton
3b6cb504b1 minor warning fixes for clang-static-checker 2011-07-27 13:03:56 +00:00
Sergey Sharybin
84d350f4b5 Camera tracking integration
===========================

Attempt to switch moviecache to use CacheLimiter.

Some changes in limiter were necessary:
- Limiter counted mapped memory twice when was chacking
  how many memory is used.
- It was using "global" memory usage not memory usage by
  cached elements. It will cause big problems when there's
  large mesh or plenty of undo steps are in memory nothing
  would be cached in sequencer.
- To solve this problem introduced "callback" to measure
  cached element size. It could be not very accurate in general,
  but it works well for image buffers. And if this callback
  isn't set old-school memory usage check would be used.
- The whole cache used to get freed when memory limit exceeded,
  now it'll drop only as much elements as necessary to reduce
  memory usage.

Sequence cache wasn't switched to use moviecache but
now it's really easy to do. When i'll be sure new caching
scheme works fine.

Now clip editor uses as much memory for cache as it's set in
User Preferences (Preferences -> System -> Sequencer -> Memory
Cache Limit) which si 128Mb by default. Please do not complain
about few cached frames out-of-box and just increase limit
there. Caching fixed amount of frames wasn't so nice indeed.
2011-07-27 12:53:39 +00:00
Nathan Letwory
73a9ce7ec0 svn merge -r38558:38752 https://svn.blender.org/svnroot/bf-blender/trunk/blender . 2011-07-27 07:42:53 +00:00
Campbell Barton
48a64ffa70 more minor warning cleanups and improve error reporting if text fails to save. 2011-07-27 06:55:20 +00:00
Sergey Sharybin
e92162744b Merging r38704 through r38732 from trunk into soc-2011-tomato 2011-07-26 15:56:53 +00:00
Sergey Sharybin
7c9033d606 Fix #28087: Opening files in the text editor ignores the last newline '\n'
It was tricky conversion of file buffer to text lines. Should work fine now.
2011-07-26 08:13:27 +00:00
Campbell Barton
9e1a553127 set the development cycle to 'beta'. 2011-07-26 07:41:14 +00:00
Sergey Sharybin
e535c63fdc Camera tracking integration
===========================

- Split clip hotkeys into two categories:
  * Global
  * Editing
  This allows to re-use such hotkeys as track markers
  from properties region without worrying about conflicts.
- Anchor point could now be offseted from marker position.
- Pattern can now be symmetrical relative to marker position only.
- Changes to mouse sliding:
  * Left top rectangle used for marker position and now
    it's half inside and half outside of marker.
  * Right bottom corners are for size.
  * Anchor point can be slided with mouse to adjust offset.
- Resolved conflict caused by left-mouse selection option.
  Now it works perfectly with sliding -- no more "sticky" keys or so.
- Fixed some typos.
2011-07-25 18:11:22 +00:00
Sergey Sharybin
f41d9007c3 Merging r38637 through r38703 from trunk into soc-2011-tomato 2011-07-25 18:05:27 +00:00