Commit Graph

1174 Commits

Author SHA1 Message Date
Sergey Sharybin
d3e098bb42 Some Clip Editor interface clean-ups:
- Display track's reprojection error in dopesheet
- Make sure track is selected when clicking on dopesheet channel
- Attempt to make headers a bit cleaner without long labels which
  doesn't actually make sense.
2012-06-12 17:11:00 +00:00
Sergey Sharybin
37612200fd Added options to display only selected tracks and show hidden tracks
in motion tracking dopesheet view.

By default all channels are displaying now.
2012-06-12 17:10:47 +00:00
Sergey Sharybin
55ca0e7636 Make dopesheet settings per-tracking data
It was a bit confusing to synchronize settings used in pre-calculated
dopesheet channels which was storing in tracking data with settings
used for display which is in space data.

This was initially done by converting one flags to other and checking
if space's settings matches pre-calculated one, but that had several
issues if two different dopesheet are using different settings:

- Channels would be re-calculated on every redraw for each of spaces
- Dopesheet operators could fail due to the could be using  channels
  calculated for other space.

That was also quite nasty code checking if requested settings matches
pre-calculated one.
2012-06-12 17:10:24 +00:00
Sergey Sharybin
552887251f Masking support for motion tracks
Added option to use Grease Pencil datablock as a mask for pattern
when doing motion tracking. Option could be found in Tracking Settings
panel.

All strokes would be rasterized separately from each other and every
stroke is treating as a closed spline.

Also added option to apply a mask on track preview which is situated
just after B/B/W channel button under track preview.
2012-06-12 11:13:53 +00:00
Bastien Montagne
2127e62c9b "Fix" for [#30704] Action Constraint mapping bug
Feature request rather than a real bug: allow constrained bone to use "object" part of the linked action, in addition to "same-named bone" part.
2012-06-12 06:22:23 +00:00
Antony Riakiotakis
854502d2e3 Add user preference "GPU Mipmap Generation" under the System/OpenGL
subpanel to calculate image mipmapping on the GPU, saving upload and
calculation time. Default is off just in case.
2012-06-11 16:23:10 +00:00
Joshua Leung
1022d0c257 Bugfix [#31766] Mouseover Label reads 'Alt Left Arrow' when over the right
arrow.

Patch by Philipp Oeser
2012-06-11 04:34:59 +00:00
Campbell Barton
3d88176269 fix [#31712] User prefs Input: Filter searches for names starting with entered phrase only 2012-06-10 21:38:24 +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
c27472c04e Synchronize changes with tomato branch 2012-06-10 12:30:47 +00:00
Campbell Barton
5e29381825 mango request
- optionally display the histogram as lines (not filled areas).
- expand the enum for faster access.
- keep the sample line displayed after doing the line sample (running again clears).
2012-06-10 12:09:25 +00:00
Sergej Reich
221a787822 Don't show physics properties in game engine conext
Also rename fluid panels to be more consistent with other simulations
2012-06-08 15:24:28 +00:00
Sergey Sharybin
54297c8d13 Clip editor: cleanup up header
One side of change is related on making code easier to follow, due it started
being quite messy because of all in-lined mode/view checks. Now there's a bit
of code duplication, but it's much easier to see what's going on there.

Another side of patch is related on re-arranging elements in header in a way
that follows rule "depending elements are placed after elements they depends on".
This might be a bit against mostly-used-based elements placement, but now it's
much easier to figure out where to add new option. Also it fits better other
blender's areas such as image editor header, i.e.
2012-06-08 07:55:15 +00:00
Sergey Sharybin
fc07b1fce3 Mask editing: remove use_parent property and use check if paren't id is set instead 2012-06-08 07:54:46 +00:00
Campbell Barton
bdf9e02346 new sequence strip type for masks. 2012-06-07 18:24:36 +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
Thomas Dinges
023fba4735 Transform Locks UI:
* Some beautifying and cleanup to show X, Y, Z label.

This fixes [#31717] Transform Locks panel -> no x,y,z coordinates are displayed
2012-06-06 18:11:12 +00:00
Daniel Genrich
0499200e39 Cloth: Add support for "Self Collision Vertex Group".
Self collision vertex groups enable artists to exclude selected vertices from getting involved in self collisions. This speeds simulations and it also resolves some self collision issues.
2012-06-06 13:30:05 +00:00
Campbell Barton
465b11e971 operator to reset feather weights on all shape keys 2012-06-05 19:39:12 +00:00
Sergey Sharybin
0d61876ed0 Configurable start frame for movie clip datablocks as alternative to automatic start frame number
Number of start frame in opened image sequence used to be distinguished automatically
in a way that file name used on open would be displayed at scene frame #1.

But sometimes it's useful to have it manually configurable (like in cases when you're
processing image sequence and replacing clip's filepath to postprocessed image sequence
and want new clip to show at the same frame range as it was rendered from).

Added Custom Start Frame flag to movie clip (could be accessed from Footage panel in
clip editor) and Start Frame which means number of frame from sequence which would
be displayed at scene frame #1.

For example if you've got clip pointing to file render_00100.png and Start Frame of 100
this file would be displayed at scene frame #1, if Start Frame is 1 then this image
would be displayed at scene frame #100,
2012-06-05 18:38:09 +00:00
Campbell Barton
8c71157af6 shrink/fatten transform for mask - adjusts the feather weight.
works in proportional editmode too.
2012-06-05 14:13:14 +00:00
Campbell Barton
ae8103240d mask editing
- clear feather weights (alt+s)
- fix for glitch where placing the feather would jitter.
2012-06-05 09:37:44 +00:00
Campbell Barton
d46a6dc59c abbreviate mask-editing to mask-edit 2012-06-04 17:30:54 +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
Campbell Barton
4414f38cbf patch [#31644] Py Console: Indent and unindent independent of cursor (aligned) [Tab / Shift + Tab / Ctrl + Tab]
from Sebastian Nell (codemanx)
2012-06-04 07:24:19 +00:00
Campbell Barton
9238d6f71b use fnmatch for reference globing rather then regex - regex overly complicates simple cases and wasnt being taken advantage of. 2012-06-03 11:01:18 +00:00
Campbell Barton
20e49e7177 quiet warnings 2012-06-03 10:33:28 +00:00
Campbell Barton
0dc84e64e7 experenental manual linking from the UI. realize this is an issue which is not agreed on so probably this will be disabled for release.
the data is stored here so more dev can commit:

./release/scripts/addons/modules/rna_wiki_reference.py
2012-06-01 20:38:40 +00:00
Benoit Bolsee
58bc424b3c BGE #30734: add support for physics linear and angular thresholds and deactivation time from python and GUI.
========================
The linear and angular thresholds set the speed limit (in m/s) and rotation limit (in rad/s)
under which a rigid body will go to sleep (stop moving) if it stays below the limits for a 
time equal or longer than the deactivation time (sleeping is disabled is deactivation time is 
set to 0).
These settings help reducing the processing spent on Physics during the game.

Previously they were only accessible from python but not working because of a bug. 
Now the python functions are working and the settings are available in the Physics panel
of the World settings when using the Blender Game render engine.

Python API:
  import PhysicsConstraints
  PhysicsConstraints.setDeactivationLinearTreshold(float)
  PhysicsConstraints.setDeactivationAngularTreshold(float)
2012-05-29 20:30:33 +00:00
Brecht Van Lommel
2aa3b5a24e Fix #31633: select pattern operator did not mention [abc] wildcard, also
documented the operator more detailed in wiki now.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Objects/Selecting#Other_Menu_Options
2012-05-29 17:01:24 +00:00
Benoit Bolsee
dfc19a1ff7 BGE patch #28476: Character object physics type
===============================================
This patch adds a new "Character" BGE physics type which uses Bullet's btKinematicCharacter for simulation instead of full-blown dynamics. It is appropiate for (player-controlled) characters, for which the other physics types often result unexpected results (bouncing off walls, sliding etc.) and for which simple kinematics offers much more precision.

"Character" can be chosen like any other physics type in the "Physics" section of the properties window. Current settings for tweaking are "Step Height" (to make the object automatically climb small steps if it collides with them), "Fall Speed" (the maximum speed that the object can have when falling) and "Jump Speed", which is currently not used.

See http://projects.blender.org/tracker/?func=detail&atid=127&aid=28476&group_id=9
for sample blends and a discussion on the patch: how to use it and what influences the behavior of the character object.

Known problem: there is a crash if the "compound" option is set in the physics panel of the Character object.
2012-05-28 21:36:29 +00:00
Campbell Barton
5b483932c7 style cleanup: nodes, also rename chunksize -> chunk_size 2012-05-27 11:08:47 +00:00
Campbell Barton
9def1dea45 patch [#31578] Standard-conformal sets for .report() and operator return values
by Sebastian Nell (codemanx)

This patch contains many changes - mostly to addons committing this correction to trunk.
2012-05-26 09:55:00 +00:00
Campbell Barton
e343a69e76 solidify option to flip normals 2012-05-26 09:18:47 +00:00
Campbell Barton
3bb4814194 initialize bake action vars from context 2012-05-26 00:46:12 +00:00
Brecht Van Lommel
19dd66cf3b 3D View: add Backface Culling option, to hide faces when seen from the back side,
found in the Display panel.

Patch by Simon Kirk and Irie Shinsuke, refactored to also work for non-mesh objects
and avoid globals.
2012-05-25 09:26:47 +00:00
Joshua Leung
8e97203f7d Restoring Group Colours for Animation Channels - Part 1
This commit restores the group colours support for F-Curves and F-Curve Groups
in the DopeSheet and Graph Editors. Currently the relevant settings for groups
are only exposed via RNA, but a followup commit will add support for
automatically setting these colours. By default, DopeSheet and Graph Editors are
set to display these colours if/when they are available.

This functionality used to be in 2.48, and is a useful mechanism for visually
distinguishing between channels for different controls when animating (if group
colours are used on the rigs too).
2012-05-24 01:25:31 +00:00
Sergey Sharybin
28002edb6b Finish changes in up/down arrows for menus
Restored single triangle for special menus, which still isn't perfect but
probably makes more sense.

Added drawflag bit flags to button, which is currently used to declare, that
button need to have up/down arrows. This is needed because it's tricky to
distinguish if button should have such arrows. For example, ID search buttons
is a simple block button which doesn't directly mean it'll have pop-up menu
and not all buttons which cases pop-up menu to display need to have such
arrows.

So currently only ID selector button is forcing up/down arrows to be displayed,
all the rest buttons now behaves in the same way as it used to be before.
2012-05-23 14:24:40 +00:00
Joshua Leung
c319d999ef Motion Paths Gui - Restoring a "Calculate" button to the Motion Paths panel
Iterating on previous design, a Calculate button is now present in this panel
again. Most people just wouldn't have a clue to try the toolbar...
2012-05-23 03:36:03 +00:00
Ton Roosendaal
2d0c5b9017 Long old UI annoyance:
The up/down triangle icon for menus was not drawing when a menu had
an icon; even though space was reserved there. Note: this can only
work now with removing the ugly "down triangle" icon from buttons like
next to the Material list box (button pops up menu with tools).

Looks nicer this way anyway.
2012-05-22 15:50:13 +00:00
Nicholas Bishop
8801330c18 Add skin modifier: DNA, RNA, UI, and MOD_skin.c implementation.
Skin modifier documentation:
http://wiki.blender.org/index.php/User:Nicholasbishop/SkinModifier

Implementation based in part off the paper "B-Mesh: A Fast Modeling
System for Base Meshes of 3D Articulated Shapes" (Zhongping Ji,
Ligang Liu, Yigang Wang)

Note that to avoid confusion with Blender's BMesh data structure,
this tool is renamed as the Skin modifier.

The B-Mesh paper is current available here:
http://www.math.zju.edu.cn/ligangliu/CAGD/Projects/BMesh/

The main missing features in this code compared to the paper are:

* No mesh evolution. The paper suggests iteratively subsurfing the
  skin output and adapting the output to better conform with the
  spheres of influence surrounding each vertex.

* No mesh fairing. The paper suggests re-aligning output edges to
  follow principal mesh curvatures.

* No auxiliary balls. These would serve to influence mesh
  evolution, which as noted above is not implemented.

The code also adds some features not present in the paper:

* Loops in the input edge graph.

* Concave surfaces around branch nodes. The paper does not discuss
  how to handle non-convex regions; this code adds a number of
  cleanup operations to handle many (though not all) of these
  cases.
2012-05-22 15:29:01 +00:00
Lukas Toenne
53b01d9002 A number of new features for the node editor in general and the Frame node in particular.
For an detailed user-level description of new features see the following blogpost:

http://code.blender.org/index.php/2012/05/node-editing-tweaks/

TL;DR:
* Frame node gets more usable bounding-box behavior
* Node resizing has helpful mouse cursor indicators and works on all borders
* Node selection/active colors are themeable independently
* Customizable background colors for nodes (useful for frames visual
distinction).
2012-05-22 14:13:33 +00:00
Campbell Barton
4a788a2277 expose absolute shape keyblock interpolation in the ui 2012-05-22 13:43:36 +00:00
Nicholas Bishop
5f95f7d2ad Add input sample averaging to PaintStroke.
Averages input samples to make the brush stroke smoother. Only mouse
location is averaged right now, not pressure/tilt/etc.

The DNA is in struct Paint.num_input_samples, RNA is
Paint.input_samples. In combination with PaintStroke usage this change
applies to sculpt, vpaint, and wpaint.

The range of useful values varies quite a bit depending on input
device; mouse needs higher values to match tablet pen, so set max
samples pretty high (64).

Release note section:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Sculpting#Input_Stroke_Averaging
2012-05-21 23:32:46 +00:00
Campbell Barton
2970b7a735 change name length from 32 to 64, perhaps we should have some constant here bpy.constants.NAME_MAX ? - but this hardly ever changes.
also hide allow overlap option for adding sequence strips, this was only intended for api use
2012-05-21 16:52:04 +00:00
Gaia Clary
baef07c229 Renamed the COLLADA Import/export labels to 'Collada (Default)' to make it better separatable from target specific exporters 2012-05-20 17:40:57 +00:00
Thomas Dinges
cd1f8200de Sequencer UI:
* Some consistency tweaks.
2012-05-20 15:52:24 +00:00
Thomas Dinges
1e33cc4384 Sequencer UI:
* Code cleanup
* Fixed wrong label for Inverse Select in the Select menu
* Some layout tweaks for space saving and avoid abbreviations in the UI.
* "Image Offset" and "Image Crop" buttons were there twice, once in the Strip Input panel and once in the Effect Strip panel, show it in the Strip Input panel only now. 
* Commented the third input fields ("input_3"), only used by the deprecated plugin system according to an RNA comment.
2012-05-20 00:34:54 +00:00
Thomas Dinges
03ed173fe6 3D View UI:
* Remove redundant "Delete" for Edge Loop in the Delete (X) menu.
2012-05-18 21:13:22 +00:00
Brecht Van Lommel
03222143c0 Add "Install Theme" button in user preferences, patch #31505 by Julien Duroure. 2012-05-18 12:49:27 +00:00