Commit Graph

1563 Commits

Author SHA1 Message Date
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
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
Janne Karhu
5c8344bcc9 Bug fix: loading a file that had particles using a dupligroup from a liblinked file without the library file being present crashed 2011-07-31 16:26:02 +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
cd332d571a Camera tracking integration
===========================

- Fixed crash when transforming disabled marker.
- Select Inverse wouldn't select hidden parts of markers.
- Movie Clip display aspect ratio is now available on Display panel.
2011-07-21 09:23:25 +00:00
Sergey Sharybin
add176fe6a Camera tracking integration
===========================

- Hide all reconreuction-related sliders from Display N-panel
  of 3D viewport if "Show Reconstruction" is turned off.
- Added setting for shape of bundle. Default is sphere.
2011-07-20 12:46:22 +00:00
Sergey Sharybin
b9c6a20354 Merging r38454 through r38515 from trunk into soc-2011-tomato 2011-07-19 19:58:01 +00:00
Dalai Felinto
d8e216833a cleanup of scene->gamedata DNA
xsch and ysch were originally planed to replace the scene->r.xsch/r.ysch
however in blender/3dview we still need to use the r. values. Therefore we can't really run
from using those values even in bplayer. So removed the values in gamedata.

The way it's now, render values (xsch and ysch) are responsible for aspect ratio and gamedata xplay and yplay are responsible for the size of the window.
2011-07-19 02:47:43 +00:00
Sergey Sharybin
e42806a744 Camera tracking integration
===========================

- Sliding from preview could now be undone.
- Fixed memory leak caused by NULL-ing used scopes on
  layout restore.
- Fixed possible crash after splitting space clip.
2011-07-18 19:39:02 +00:00
Sergey Sharybin
3a6ea7b5e1 Camera tracking integration
===========================

- Track preview widget is now resizeable.
- Marker position could now be adjusted from track
  preview widget.
2011-07-18 14:54:32 +00:00
Sergey Sharybin
b18dd20aea Merging r38433 through r38453 from trunk into soc-2011-tomato 2011-07-17 17:25:11 +00:00
Campbell Barton
5792bd7cc7 cmake: cleanup include paths, some duplicates and going up some unneeded dirs. 2011-07-17 09:11:13 +00:00
Sergey Sharybin
1d668e39d8 Merging r38390 through r38418 from trunk into soc-2011-tomato 2011-07-15 20:22:01 +00:00
Janne Karhu
729498ab2d Fix for [#26712] Particle group instance 'Use Count' value gets reset on file-load.
* New object pointers can't be loaded properly for library linked groups, so the weight groups now store an index to the group objects at save time. This index is used at load time to set the objects without relying on the old pointers.
* If the library linked group is modified the indices can be wrong, but this can't really be avoided easily as there's no way to relate objects in a linked group between loads.
2011-07-15 13:32:02 +00:00
Sergey Sharybin
db5b89a320 Camera tracking integration
===========================

Commiting patch #24427: Editable camera sensor size (meaningful focal length units)

Thanks to:
  Matt Ebb (author of original patch)
  Ejner Fergo (porting patch through versions)
  Brecht Van Lommel, Dalai Felinto, Campbell Barton (patch review)

Cant't commit changes to addons (they aren't branched, so some of them
could be broken now)
2011-07-14 15:21:45 +00:00
Sergey Sharybin
b16a448e8d Camera tracking integration
===========================

Clean-up: animation data is not necessery in MovieClip. Removing.

It'll be easy to add it back just reverting this commit.
2011-07-09 19:57:29 +00:00
Sergey Sharybin
3685eac8e1 Merging r38220 through r38236 from trunk into soc-2011-tomato 2011-07-08 17:40:29 +00:00
Brecht Van Lommel
668323d701 Fix #27900: file browser filter, sort, .. parameters were not saved. This is
useful if you have a screen setup with a file browser editor.
2011-07-08 12:22:48 +00:00
Sergey Sharybin
d279e8891f Camera tracking integration
===========================

- ColaMD moved from OpenNL to extern/.
  It'll be needed for libmv. Also, it's a bit updated from
  year 1999 to 2007.
  Need to be tested for regressions.
- Updated bundling script for libmv. Now it uses fuller
  subset of this library.
- Bundled new libmv.
- Request from Keir: add command line argument to toggle logging
  stuff on. Currently, if Blender is launched with -d argument
  libmv would start printing logging messages. There's no
  argument to increase verbosity, but there's API in libmv-capi,
  so it'll be easy to add.
- Finally fixed crash when ibuf is acquiring with user=NULL.
- Added ActiveClip property to the scene. This clip is used
  as default value for new match-moving constraints.
- Added some flags to Display panel of View3D. Related on
  displaying match-moving stuff.
- Internal change: bundles data moved inside to MovieTrackingTrack.
- Initial implementation of 3d reconstruction.
- Added constraint "Camera Solver". This constraint is supposed
  to be used to make camera follow the reconstructed camera path.
- Added "reference" property to "Follow Track" constraint.
  Now object could be "parented" to 2D track position or to
  3D bundle position.

The very quick guide:

To use reconstruction you should have footage with tracked markers,
choose two keyframes in "Tracking settings" panel. There should be
quite noticeable parallax effect between this two frames. This
is used to initialize reconstruction stuff.
Camera data (focal length and optical center) should be filled in
"Camera Data" panel. Optical center is often the center of image,
so it'll be filled in automatically.
You should also set values for undistortion (K1, K2 and K3). Currently,
there's no any visualization for this parameters and approach of
"change value -> reconstruct -> see what've changed" is the only way
for now.
Libmv team is working on auto-calibration tool, so it should be
easier to gather this coefficients in nearest (i hope) future.
There's also no scene orientation stuff.

Basic workflow:
- Open footage.
- Set markers and track them.
- Fill in camera data and keyframes.
- Hit "Solve Camera" button.
- Add "Camera Solver" constraint to camera in scene.
- Choose movieclip in that constraint.
- To see bundles in 3D viewport active clip should be set
  in scene buttons.
2011-07-07 17:58:33 +00:00
Sergey Sharybin
7ece1ef63e Camera tracking integration
===========================

- Internal changes:
  * Fixed bundle.sh script to bundle libmv: it was generating
    incorrect CMakeLists header.
  * Rename CLIP_OP_delete to CLIP_OT_delete_track.
  * Fixed crash when BKE_movieclip_acquire_ibuf is called
    with NULL user.
  * Made MovieTrackingMarker structure 8-bytes aligned
  * Use writestruct rather than writedata for track markers.
    This allows to change MovieTrackingMarker safely.
- Added "Delete Marker" operator which deletes marker for
  current frame only. Hotkey is Shift-Del.
- Added MovieClip.size and MovieClip.resolution RNA properties.
  Use last accessed frame number to get ImBuf from sequence.
- Added different actions for "Clear Path" operator:
  * Clear path up to current frame.
  * Clear the whole path.
  * Cleat remained part of path (for frames after current).
- Changed buttons order and icons for tracking. New order is:
  * Track frame backwards.
  * Track sequence backwards.
  * Track sequence forwards.
  * Track frame forwards.

NOTE: this breaks compatibility with existing .blend files again,
      but it should be much easier to change data structures without
      breackaged in the future.
2011-06-29 18:05:07 +00:00
Sergey Sharybin
70eb9e85c5 Merging r37732 through r37862 from trunk into soc-2011-tomato 2011-06-27 14:20:48 +00:00
Nicholas Bishop
d7cea716c5 == Multires ==
Fix for bug #27710, 'Multires lost from 2.49 file in 2.5x'
Reported by Gaia Clary.

Problem was that the old multires data didn't flush changes to
vertices out to the Multires structure on filesave. So, recent bits of
sculpting could be lost if the multires level wasn't changed before
filesave.

We already had code to deal with missing multires vertex data, which
simply copies the Mesh vertex data into the multires vertex data if it
matches the number of vertices in the highest level. Moved this code
up a bit so that we always make this copy if the numbers match up.

Was able to reproduce the bug fresh in 2.49b, and confirmed that the
fix works. However, this does not help if changes were sculpted on a
multires level other than the highest level and saved without a
subsequent level change.
2011-06-27 03:54:22 +00:00
Ton Roosendaal
05fb0e2d61 First commit to make "Style" settings saved in startup.blend
Usage currently is limited to:
- Panel text, widget text and label text style:
  point size, shadow effects

Setting individual fonts to these is not possible yet, it uses the
default for it.

Access goes via outliner now; check "User Preferences". UI team could
add this in userpref scripts :)
2011-06-24 14:00:15 +00:00
Lukas Toenne
587b51831d More flexible size options for particle billboards. This adds scale factors for width and height of billboards, relative to the particle size. It's useful when the particle size is primarily used for collision and the like, so the billboard appearance can be adjusted independently. Also allows non-square billboards.
In addition the billboards can be scaled by the particle velocity with optional head and tail factors (similar to line drawing options). This allows for pseudo-motionblur effects.
2011-06-23 18:59:47 +00:00
Sergey Sharybin
0bb215eece Camera tracking integraiton
===========================

- Corrected copyrights in my new files header.
- Added debug option to dump as PNG image content of search
  areas tracking between which was failed.
- Removed internal tracking settings like pyramid level and
  tolerance. Weren't useful neither for me nor for artists.
- Fixed bug in BKE_tracking_get_marker which could lead
  to failure of getting marker for current frame when
  there's marker for requested frame.
- Fixed bug with disappearing markers after tracking for
  cases when marker was added at frame different from
  tracking start frame and tracking start frame is
  equal to tracking end frame.
- Stop tracking when no markers could be tracked.
- Changed marker selection rules:
  * If marker isn't selected, all it's areas are getting
    selected with mouse.
  * If marker is selected and selection type doesn't have
    "extend" mode (SHIFT isn't holded down) the nearest
    to mouse cursor area would be selected. All the reast areas
    would loose selection.
- Limit number of frames which would be used in "Track Markers"
  operator. So now you could easily track along 10/20/etc frames.
- Change scene current frame after "Track Markers" operator.
- Implemented speed limitors. Now tracking could happen:
  * As fast as possible
  * With reatime speed (scene FPS)
  * With half of realtime speed
  * With quarter of realtime speed.
- Got rid of orig_user in MovieTrackingContext and user
  in TrackMarkersJob. This prevents crashes when user
  joins some space to SpaceClip from which tracking was started.
- Made keyframes on path bigger and do not draw keyframes for
  non-selected markers.

TODO: need to get rid of storing main, scene and screen
      in TrackMarkersJob. This is needed to set scene's
      current frame after tracking (such behavior is comfortable
      for artists) but this could lead to crash if scene is
      getting removed when tracking job is running.

      Render animation operator also stores scene and main,
      so such solution could be fine for first time before
      we've got something smarter.
2011-06-22 14:54:53 +00:00
Sergey Sharybin
1eaea0b484 Merging r37479 through r37513 from trunk into soc-2011-tomato 2011-06-15 17:21:34 +00:00
Brecht Van Lommel
5e41807135 Fix #27654: vertex parenting not working with constructive modifiers.
Vertex parents were not requesting the original index layer, now do this as
part of depsgraph building, and make constraints with vertex groups use the
same system. Fix is based on patch by Campbell, but with some changes.
2011-06-15 09:45:26 +00:00
Sergey Sharybin
7b40210025 Merging r37437 through r37478 from trunk into soc-2011-tomato 2011-06-14 16:08:39 +00:00
Dalai Felinto
a2dda7c74d BGE Patch: [#27425] Allow to change the damping of the camera actuator
##########
original name: "Allow to change the strenght of the "go behind" constraint of the camera actuator"

The camera actuator is an actuator that drive the camera to follow an object, with a set of constraint.
Currently, when the object followed rotate on himself (like a person, or an helicopter), the camera is really slow to go behind (at least 10 seconds).

This patch gives the UI to tweak the strenght of the 'go behind'[named damping] constraint.
###########

epydocs (rst) updated too
2011-06-13 17:08:33 +00:00
Sergey Sharybin
6e0332fd40 Camera tracking integration
===========================

- Disallow moving pattern/search area in way when marker position is
  outside of pattern area.
- MoiveClip could be set as background for 3D view.
  Added background source property to BGPic to switch between image
  and movie. Movie is a bit more complicaated entity than clip (due to
  displaying bundles, test objects and so) that's why i've sliptted
  background into two sources.
- Added Layout.template_movieclip to display general clip settings.
  Used in Footage panel of SpaceClip and background image properties
  in 3d view.
- Display bundles in 3D view as spheres. Selection is synchronized to
  markers associated with this bundle.
  Bundle can't be selected in 3D view.
- Recoded internal DNA structures, RNA and operators to match libmv entities.
  Tracking data now consists of Tracks, each tracks consists of markers
  which are associated with frame number. Markers holds position only,
  pattern and search areas settings are stored in track. Such settings should
  be unified for all markers in track and marker should hold position and
  frame number only.
2011-06-10 17:06:37 +00:00
Sergey Sharybin
eb57876275 Merging r37123 through r37370 from trunk into soc-2011-tomato: 2011-06-10 16:58:07 +00:00
Campbell Barton
d4ae38cc6c fix for own mistake & fix some comments. 2011-06-09 13:46:34 +00:00
Campbell Barton
252f7c9af8 fix [#27616] Appending an object from a file brings all existing group links to scene
When appending from a blend file which had an object already linked, _but_ was not in any scenes.
- the linked object would be instanced.
2011-06-09 04:28:53 +00:00
Campbell Barton
e7e1bc4ca1 add foreachIDLink function for cloth, remove cloth specific newlibadr calls in readfile. 2011-06-09 02:47:22 +00:00
Campbell Barton
65ec26ab83 fix for own error r35918, generalizing looping over modifier ID links
broke loading smoke group references because they already had calls to
newlibadr_us() elsewhere, removing those assignments fixes loading.
2011-06-08 16:00:52 +00:00
Campbell Barton
e4bb5403d3 fix for crash opening the file selector twice with multiple windows open (when the mouse was over the inactive window). 2011-06-06 00:42:36 +00:00
Jason Wilkins
a580b5ec80 fixed warning, signed/unsigned mismatch, blo/readfile.c line 1742 2011-06-05 18:00:24 +00:00
Campbell Barton
07619d8fc0 with the new scalable UI. hard coded values were still used for resizing the headers, with DPI of 56 the headers could not be un-hidden. 2011-06-05 09:00:36 +00:00
Sergey Sharybin
c4849aee1c Camera tracking integration
===========================

Implemented basic structures and operators for markers manipulaiton.

Markers contains:
- Position of marker at frame in unified 0..1 coordinates
- Relative positions of left-bottom and right-top corners of pattern area
- Relative positions of left-bottom and right-top corners of search area
- Selection flags

New operators:
- Create new maerker. It's a modal operator which creates markers
  at mouse position when LMB is clicking.
- Delete selected markers.
- Select marker using RMB. Some parts of marker (point, patter, search)
  could be deselected.
- Select markers using rectangular selection.
- Select markers using circle selection.
- Marker translation (G-key).
- Marker scaling (S-key).

UI changes:
- Added mode to space clip. Currently supported modes are:
    * View mode
    * Tracking mode
  This was intended to separate different categories of tools,
  so interface shouldn't be overheaded with plenty of tools
  which aren't actually using in the same time.
- Created new panel when actiev tool is 'MARKER' and there's
  active marker where positions could be adjusted in pixel space.

Internal changes:
- Splitted DNA/RNA movieclip files to make separation of
  tracking data and movie data more clear. This could be useful
  in the future when we'll want to support multiplie moies
  for single camera tracking (to make tracking more accurate).
- Added new file in blenkernel, where all tracking-related function
  would be stored. Not very much function here at this moment,
  but in the future all stuff related on converting DNA to external
  tracking data would be stored here.
2011-06-03 15:39:53 +00:00
Sergey Sharybin
9864c12eef Merging r37010 through r37122 from trunk into tomato.
Manually resolved conflict in startup.blend.c
2011-06-03 14:54:37 +00:00
Brecht Van Lommel
83609edd51 Fix related to #27309: group nodes with a linked datablock that was missing would crash. 2011-06-02 17:34:01 +00:00
Andrea Weikert
b4872b84c8 fix for [#27410] Manual save kills actual .blend file if disk space is low
- moved do_history into WM_write_file after successful write of .blend@ temporary file
- Added new file flag, to avoid writing history on writing the startup.blend, autosave files and undo.

Thanks Campbell, Brecht for review!
2011-06-02 12:44:59 +00:00
Brecht Van Lommel
a180bfe267 Fix #27541: f-curve generator modifier file read missed endian switch,
found by Guillaume Roguez.
2011-06-01 13:10:37 +00:00
Campbell Barton
09da9d4393 cmake maintenance
blender_add_lib now takes a separate include argument to suppress warnings in system includes (mostly ffmpeg & python).
also only build wm_apple.c on apple+carbon configuration.
2011-05-31 01:15:44 +00:00
Sergey Sharybin
8f8a03529b Camera tracking integration
===========================

- Initial implementaiton of new ID named MovieClip.
  Currently it has plactically the same functionality as
  images, but this functionality would be widen in nearest future.

- Initial implementation of SpaceClip.
  This space is supposed to be used for acting with MovieClips
  (opening, playbacking, math-moving interaction and so on).

  Currently you could open image sequence/movie file here, pan/zoom,
  use a playback here.

  I've added cache visualizer to this space, but it's currently more
  a developer's feature to see how cache system works, but it could
  be adopted for further artists' usage (something like cache visuzlizer
  for simulations).

- Added new theme area for Space Clip.
  No special colors were defined here yet.

- Implementation of basic cache system for movies.
  This cache system is very familiar with sequence cache system,
  but it supposed to be more portable: at least cache keys aren't
  limited with sequence-based data and current seqcache could
  became an interface between sequencer and moviecache without
  much logic (only logic related on keys handling would be necessary
  here).

  Implemented basic limitors (ab\mount of cached imbuf's), so it'll
  be a bit more difficult to go out of memory when playing long
  animations in Image Editor (this cache system could be used for
  images too, in the future).

- Very basic tools implementation -- only sceletion added, no
  real tool implemented (only camera focal length added to the UI
  which hasn't got real affect on anything).

Assorted notes:
- Not sure about best behaviour for Unlink clip button: should
  it be imageeditor-like (with de-referencing only) or text-editor
  like (with removing datablock from file).
- Also not sure if tools/properties should be splitted into
  different areas or it'll be better to have tools and settings
  for this tool/item/etc in the same area (tools at the top,
  properties are under them).
  Code for properties area is '#if 0'-ed.
- Sound isn't supported during playback in movie clip.
2011-05-30 04:18:02 +00:00
M.G. Kishalmi
9b5800bcd7 fixed "rather then" -> "rather than" typos all over the place 2011-05-28 13:11:24 +00:00
Campbell Barton
78b8e4a437 remove BLI_streq() since it was hardly used, also replace string search with BLI_findstring(). 2011-05-26 21:04:01 +00:00
Campbell Barton
06fea1a0ff split BLO_library_append_named_part into 2 function, one that adds objects into the scene and another that just links/appends. 2011-05-26 20:45:19 +00:00
Brecht Van Lommel
d7f42721f8 Fix #27465: used light groups did not get linked in with materials automatically. 2011-05-26 10:25:51 +00:00