Commit Graph

3462 Commits

Author SHA1 Message Date
Sergey Sharybin
eccccd7b09 Camera tracking integration
===========================

Basic implementation of scene orientation tools.
Most probably they'll eb re-exposed in UI soon.

- Implemented "Set Floor" operator.
  It takes three
  selected tracks which has got bundles and makes them
  parallel to scene floor. One of selected bundles (active
  bundle if presents) becomes scene origin, the other
  becomes X-axis. Guessing of this bundles could fail.
  Camera tries to be on positive Z half-space.
- Implemented "Set X-axis" operator.
  This operator takes selected track with bundle and
  aligns it along X-axis. This means rotation to make
  Y-coord of this bundle 0 is applied.
- If camera has got a parent, then transformation would
  be applient ot this parent, not to camera.
  Useful for configuration when Empty is used to orient
  camera and some related stuff in 3D space.
2011-07-13 15:09:45 +00:00
Sergey Sharybin
fa34bcf6ee Camera tracking integration
===========================

Attempt to fix bundles position for case scene camera has got
other constraints than CameraSolver (mostly to support camera
parenting to other object for scene orientation).

Use a bit silly logic to calculate camera matrix to orient
bundles in 3d space: temporary disable all CameraSolver
constraints for camera, re-calculate object matrix, use it
to orient bundles and clear temporary flag.

This allows to parent both of camera and mesh created from
bundles to the same Empty object and both of bundles and
mesh vertices would have the same coords in camera space.

Also removed copying of location/rotation from camera to
bundles object in "Bundles to Mesh" operator.
2011-07-13 08:26:33 +00:00
Sergey Sharybin
cceb1540dc Camera tracking integration
===========================

- Fixed typo in RNA api for has_bundle.
- Added operator "Bundles To Mesh".
  It was a request from Sebastian and this operator creates mesh
  with vertices using bundles coords for vertices coordinates.
  A bit limited atm -- new object can't be parented to camera,
  so changing camera orientation would requite mesh re-creation.
2011-07-12 18:04:29 +00:00
Sergey Sharybin
b821244614 Camera tracking integration
===========================

- Reduced size of widget for camera focal length units.
  Also changed labels to mm/px. Now it's much easier to read
  values and titles here.
- Reordered settings in "Display" panel. Hopefully it's
  now easier to read options here even when N-panel
  isn't large enough.
- Fixed bug with "disappearing" labels from "Active marker" panel.
- If search areas are hidden and marker is disabled,
  make pattern area red rather than displaying nothing for
  this marker.
- Internal change: "show marker path" became "show track path".
- Lock shape of pattern to square by default. Control unlocks
  this shape.
- Hitting escape when sliding cancels changes and stops sliding.
- Search areas are hidden by default now. No big benefit of
  looking at them now after changing default settings to
  2D tracker and pattern/search size.
- Both of Toolshelf and Properties panels are now visible
  by default.
- Move keyframes from Properties panel to Toolshelf.
  It is a key thing which makes reconstruction correct and
  this options were too hidden and not so convenient to
  use.
2011-07-12 11:46:46 +00:00
Sergey Sharybin
2543e01052 Camera tracking integration
===========================

- Fixed incorrect usage of RNA structure for
  CameraSolverConstraint.
- Fixed some typos in object_constraint which were
  casting CameraSolver data to FollowTrack data.
- Tracking-related constraints now have got option
  "Use Defult Clip" which makes them use clip set as
  active for scene. Enabled by default.
- Set active blender camera focal length after reconstruction.
- Corrected offset of sequence images. Now first image from sequence
  should be at scene frame 1.
2011-07-11 17:13:27 +00:00
Sergey Sharybin
08bd300f0e Camera tracking integration
===========================

- Changed libmv api to use doubles instead of floats.
  No real benefit rather than keeping API uniform.
- Optimized reconstructed camera search. It's optimized for
  playback, not random access.
- Added option to show projection of bundles into footage.
  To see bundles "Show Bundles" from Display panel should
  be enabled. Used very rough limit of 3 px to consider projection
  is fine. Colors are still hard-coded. Not sure it could be useful
  to make them configurable.
- Added option to mute footage. It could be useful to check
  if markers/bundles are moving smoothly.
- Added selector for focal length units.
2011-07-11 09:04:00 +00:00
Sergey Sharybin
1135dbcc36 Merging r38265 through r38295 from trunk into soc-2011-tomato 2011-07-11 08:43:34 +00:00
Campbell Barton
dbc9e36f72 make python3.3 compatible, __class__ is no longer in the class methods namespace. 2011-07-11 05:50:49 +00:00
Sergey Sharybin
0277b36b76 Camera tracking integration
===========================

- Fixed sub-pixel precision error when sliding markers.
- Made sliding areas smaller.
- Remove "Debug" menu,
- pep8 cleanup.
2011-07-10 18:12:29 +00:00
Campbell Barton
301e5b4ea0 fix for various python bugs and remove unused var. 2011-07-10 17:26:15 +00:00
Campbell Barton
b62a956cc8 cleanup for python scripts - unused vars and imports 2011-07-10 12:51:37 +00:00
Sergey Sharybin
964c3cb0fa Camera tracking integration
===========================

- Implemented hide/show track functionality.
- Small re-exposing Marker menu into UI.
  Now it's called "Track". Added new operators there.
- Set reconstructed clip as active to scene.
2011-07-09 19:51:23 +00:00
Sergey Sharybin
c3d2e13a49 Camera tracking integration
===========================

- Made settings for tracking non-animatable.
- Fixed crash when enabling/disabling markers from
  "Specials" menu.
- Translate all coords to make first reconstructed camera
  be at position (0,0,0).
- Blender's camera now affects on reconstructed data.
  Bundles are "parented" to active scene camera. So now
  bundles' could could be scaled and rotated when camera
  is rotating/scaling.
2011-07-08 17:42:13 +00:00
Sergey Sharybin
f20de08afd Camera tracking integration
===========================

- 32 bit linux compilation should be fixed now.
- Camrea reconstruction data should be better now
  when there's no reconstructed cameras.
- Implemented "Set Origin" operator
- Added "Specials" W-key menu for SpaceClip.
  Supports such operators:
  * Enable track
  * Disable track
  * Set origin
2011-07-08 08:38:54 +00:00
Sergey Sharybin
f09256af24 Merging r38197 through r38219 from trunk into soc-2011-tomato 2011-07-08 08:36:51 +00:00
Campbell Barton
357afe06bc fix issue raised by [#27819] Unwrap Menu (U) -> Lightmap Pack throws Python Exception. But use a different fix. 2011-07-08 03:07:51 +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
ef5110a033 Merging r38036 through r38196 from trunk into soc-2011-tomato 2011-07-07 17:48:22 +00:00
Jeroen Bakker
c4491f558b Current situation
A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done.

In blender movies this feature is known to be implemented, but until now it never got integrated into trunk.
Proposal

With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index.

In the compositor the ID Mask node can be used to extract the information out of the Render pass.
Impact
User interface

On the properties-space the next changes will be done

    Scene⇒Render layer⇒Passes⇒Material index will be added
    Material⇒Options⇒Pass index will be added

DNA

    Material struct will get an new field called “index”. this will be a short-type.
    Material struct the field pad will be removed.
    A new Render-layer pass will be added (bit 1«18)

RNA

    Material RNA is updated (based on “pass index” from object)
    Render layer RNA is updated (based on IndexOB)

Blender internal renderer

The Blender internal renderer will process the render pass as a copy of the Object index.
Blender compositor

The render layer input will get a new output socket called “IndexMA”
Usage

An example on how to use material index can be found at:

https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend

This is also example of a commit message longer than the commit itself :)
2011-07-04 18:14:41 +00:00
Campbell Barton
abb21a4da0 fix for python error when pinning a non mesh object in mesh editmode. 2011-07-03 07:21:33 +00:00
Campbell Barton
22bb09d018 fix for error when moving module, broke fracture tools and select internal face operator. 2011-07-03 04:28:41 +00:00
Sergey Sharybin
ed4d973da3 Camera tracking integration
===========================

- Removed unneeded checking of marker==NULL
- Tracks could be named now.
- Implemented "Follow Track" constraint to "parent"
  objects to tracks from movie clip.
- Added operator to create such constraint for active object
  using clip and track from current context.
2011-07-01 17:12:08 +00:00
Sergey Sharybin
f141b59497 Merging r37952 through r38022 from trunk into soc-2011-tomato 2011-07-01 16:39:13 +00:00
Campbell Barton
dcd8933b95 quick explode failed if executed with no active object 2011-07-01 13:26:20 +00:00
Campbell Barton
590682bac1 uv mirror poll function wasnt checking UV's were available on the mesh. 2011-07-01 13:25:00 +00:00
Campbell Barton
2c66ab12e9 minor pep8 edits 2011-07-01 12:33:34 +00:00
Campbell Barton
093af18bfd fix for own error in script edits, broke bpy_extras.mesh_utils.ngon_tesselate 2011-06-30 16:06:30 +00:00
Campbell Barton
66b565a376 improve error report [#27775] External Image Editor Preference does not work
also correct tooltip typo.
2011-06-30 04:32:59 +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
25bc182566 Merging r37946 through r37951 from trunk into soc-2011-tomato 2011-06-29 18:03:03 +00:00
Campbell Barton
7f70f78376 Addon UI: button for removing addons which are installed to user/home paths, this is not displayed for system addons, or ones which come with blender. 2011-06-29 15:56:22 +00:00
Campbell Barton
8f89e7a309 incorrectly had CMake storing directory names as filepaths
also correct compiler warning for collada and remove print from own last commit.
2011-06-29 13:16:11 +00:00
Sergey Sharybin
19e99f8dc3 Merging r37908 through r37945 from trunk into soc-2011-tomato 2011-06-29 12:39:01 +00:00
Campbell Barton
d86d68d4e6 console autocomp import now excludes '_' prefixed variables and the results are sorted. 2011-06-29 10:47:43 +00:00
Campbell Barton
c19d2d2da2 bug [#27779] Python console completion broken
modified auto-completion, though this may need to become a preference.
The problem is:
- including _all_ text as a prefix can take a lot of space, and isnt too readable.
- including only the previous word is error prone because detecting delimiters can fail when editing strings.

so I've set it to only include the last part of the string but align to the cursor to make it more readable.
2011-06-29 06:06:59 +00:00
Sergey Sharybin
75889661de Camera tracking integration
===========================

- Internal changes:
  * Rename uiTemplateMarker to uiTemplateTrack.
  * Fixed some comments in movieclip.c.
- Control channels which are affect on track.
- Fixed track deletion when it's point isn't selected.
2011-06-28 10:09:57 +00:00
Sergey Sharybin
def04fa523 Merging r37863 through r3789 form trunk1 into soc-2011-tomato 2011-06-28 10:06:06 +00:00
Campbell Barton
57f4844c43 make drawing faces in the UV editor an image space option, re-using the mesh option was lazy and doesn't make much sense. 2011-06-28 09:42:17 +00:00
Campbell Barton
b4682414c2 fix [#27787] Smart UV Unwrap Results in Overlaps
added optional face area weighting (from 2.4x) since this can result in overlapping faces.
2011-06-28 06:51:55 +00:00
Sergey Sharybin
08407e79ea Camera tracking integration
===========================

- Fixed "sliding" when panning footage in high zoom.
  This was most noticeable near right top corner of footage.
- Fixed 1px flickering of marker during playback with
  "Lock to Selection" toggled on. This was caused by
  precision errors. Used UI_view2d_to_region_no_clip-like
  offsets calculations, but in float values. Maybe there
  could be something smarter..
- Implemented tarcking along single frame.
  Hotkey is ALT+left/right array. Also changed a bit
  tracking tools buttons in Tools panel.
- Fixed "Lock to Selection" during tracking -- tracks
  synchronization should happen before centering view.
- Approximate marker's position for frames, which haven't
  got marker for them.
  Use the nearest marker from left side for approximation.
  For frames above  first marker's framenr sue first marker
  position.
- Markers now could be disabled. Added checkbox to
  "Active Marker" panel.
- Changes in cache line:
  * Bright line means active track has marker for frame.
  * Dark line means marker's position is approximated.
  * Yellow-less line means marker is disabled for that frames.

NOTE: .blend files which are saved with previous tomato version
      would fail to work properly. I don't want to spend time
      on making that files work properly atm, so don't blame on this.
2011-06-27 14:24:23 +00:00
Sergey Sharybin
70eb9e85c5 Merging r37732 through r37862 from trunk into soc-2011-tomato 2011-06-27 14:20:48 +00:00
Campbell Barton
4dd18f7e6f fix for editmode option toggle 2011-06-27 11:40:15 +00:00
Campbell Barton
a1abdf1c1c fix [#27778] Set Bone Flags - No Scale - Toggle seems not to work.
Toggling options on the selection is better done as a generic operator.
Replace ARMATURE_OT_flags_set and POSE_OT_flags_set with WM_OT_context_collection_boolean_set and use menus to access it with specific settings.

This way its easy make a key shortcut which toggles any boolean on any collection - sequences, metaballs, objects, bones etc.
2011-06-27 07:51:52 +00:00
Campbell Barton
33e554799b Minor warning cleanup & fix
- comment/remove assignments from values to themselves.
- add case break statements (no functional change but some source code checkers notice).
- fix python errors when the sculpt brush is None.
2011-06-27 03:36:14 +00:00
Matt Ebb
826ed5ed1d Fix [#27748] undeterministic behaviour of volumetric renderer
* Made clearer in the UI that the approximate multiple scattering always enables light cache
* Fixed a potential problem in anisotropic scattering
2011-06-25 00:33:36 +00:00
Campbell Barton
fd60b73b7b fix [#27742] Smart UV project no longer works in 2.58
failed with active, unselected objects.
2011-06-24 04:12:01 +00:00
Campbell Barton
3cf2e6b7dc fix [#27747] Modal operator in Special Menu (W) ignores continues grab 2011-06-24 03:59:41 +00:00
Daniel Salazar
fc95ebbc55 W special menu for changing orthographic camera lens scale was missing
btw continues grab doesn't work with this modal ops.. whats up?
2011-06-24 03:41:07 +00:00
Brecht Van Lommel
a014886c57 Fix typo in addon user preferences menu. 2011-06-23 19:42:54 +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