Commit Graph

1279 Commits

Author SHA1 Message Date
Campbell Barton
b889e9c573 There was no way to remove mesh data layers from the interface - add a panel that works in object an editmode.
currently can remove sticky/mask/skin vertex layers.

regarding the skin layer - while adding and removing the modifier normally works fine, its not 100% reliable since the mesh may be linked into another scene, or be a linked duplicate and the object with the modifier deleted.
2012-09-21 03:41:59 +00:00
Brecht Van Lommel
56476248b6 Fix #32601: armature select similar missing from select menu. 2012-09-20 00:10:26 +00:00
Brecht Van Lommel
bd4de709fd UI: cosmetic tweak to render/animation/play buttons, align, change icon. 2012-09-17 10:54:50 +00:00
Sergey Sharybin
a73dd3476e Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.

This introduces two configurable color spaces:

- Input color space for images and movie clips. This space is used to convert
  images/movies from color space in which file is saved to Blender's linear
  space (for float images, byte images are not internally converted, only input
  space is stored for such images and used later).

  This setting could be found in image/clip data block settings.

- Display color space which defines space in which particular display is working.

  This settings could be found in scene's Color Management panel.

When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.

This conversions are:

- View, which defines tone curve applying before display transformation.
  These are different ways to view the image on the same display device.
  For example it could be used to emulate film view on sRGB display.

- Exposure affects on image exposure before tone map is applied.

- Gamma is post-display gamma correction, could be used to match particular
  display gamma.

- RGB curves are user-defined curves which are applying before display
  transformation, could be used for different purposes.

All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.

This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).

Some technical notes:

- Image buffer's float buffer is now always in linear space, even if it was
  created from 16bit byte images.

- Space of byte buffer is stored in image buffer's rect_colorspace property.

- Profile of image buffer was removed since it's not longer meaningful.

- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
  to support other spaces, but it's quite large project which isn't so
  much important.

- Legacy Color Management option disabled is emulated by using None display.
  It could have some regressions, but there's no clear way to avoid them.

- If OpenColorIO is disabled on build time, it should make blender behaving
  in the same way as previous release with color management enabled.

More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management

--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
Campbell Barton
12da3d999b modifications needed to get a URL from an RNA id from the testing script 2012-09-13 00:26:01 +00:00
Campbell Barton
7b15620da0 fix [#32350] F11 play animation crash when UI language is not "Default"
this is a bug in boost 1.46, can remove this env var override when this version of boost is no longer supported.
2012-09-12 08:06:06 +00:00
Campbell Barton
a0ae47f06c add some missing NULL checks, a few parts of the code used a pointer then checked it for NULL after.
also made it more clear that some areas assume the pointer isnt null (remove redundant NULL checks).
2012-09-11 02:18:27 +00:00
Campbell Barton
6b1895d64c when pressing play report when the first frame can't be found. 2012-09-10 02:04:02 +00:00
Campbell Barton
acfff7a65f fixes for weight paint mode:
- sample weight didnt work when the object was transformed.
- sample weight didnt work when vertex selection was enabled.
- 'All faces' option is used by weight paint mode, but there was no UI access.

add ED_mesh_pick_face_vert(). which uses the face selection buffer but returns the closest vertex.
2012-09-07 05:54:54 +00:00
Campbell Barton
8cf9e5f8c3 change templates to call modal_handler_add() is called last since any errors between calling this function and returning will crash blender. see [#30687] 2012-09-05 00:11:39 +00:00
Sergey Sharybin
3d7fd3c158 Sequencer: remove effect mask input
Initial idea of this input was re-designed in a bit more flexible
way using modifiers.
Also since Color Balance (which was the only thing using effect
mask input) was moved to the modifiers, this input field became
rudiment.

It's pretty tricky to write versioning code to prevent possible
data in cases this field was used, but hope it wouldn't be difficult
to switch to modifiers masks.
2012-09-04 13:48:24 +00:00
Sergey Sharybin
122cb86d15 Sequencer: remove strip's color balance in favor of modifiers
Having two ways to control color balance now seems a bit overkill
and not clear.

Removed old Color Balance settings from the interface and logic,
added versioning code to convert this settings to modifier.

Unfortunately, since color balance was a pointer, it's not actually
possible to preserve compatibility of old files saved in new
blender and opened back in old blender.

Hopefully there's no regressions :)
2012-09-04 13:37:53 +00:00
Sergey Sharybin
3e540d4d4c Fix #32372: Blender Locks up when using Quick Fluid feature 2012-09-03 16:08:28 +00:00
Campbell Barton
13254cde8c Alternate mask spline feather offset calculation method: now there are 2 [Even | Smooth]
- Even preserves thickness but can give unsightly loops
- Smooth gives nicer shape but can give unsightly feather/spline mismatch for 'S' shapes created by beziers.

This is an example where smooth works much nicer.

http://www.graphicall.org/ftp/ideasman42/mask_compare.png
2012-08-27 09:44:56 +00:00
Campbell Barton
a7ec09aef9 ability to register your own online manual callbacks - useful for 3rd party addon developers, who may want to link to their own URL's. 2012-08-25 14:07:51 +00:00
Sergey Sharybin
501efb0e7c Sequencer: bright/contrast modifier
Behaves in exactly the same way as bright/contrast compositor node.

Some code could be de-duplicated, like contrast formula and mask
influence, but wouldn't call it stopper for commit since it's
already needed for grading Mango.
2012-08-24 09:07:04 +00:00
Brecht Van Lommel
32a05baad9 Fix #32388: bpy.ops.wm.path_open() not working with path with spaces on Windows. 2012-08-23 11:18:31 +00:00
Sergey Sharybin
9bae78ed5d Sequencer: move up/down operators for modifiers 2012-08-23 09:04:30 +00:00
Campbell Barton
6143acf878 hook menu was using last remembered use_bone setting 2012-08-22 15:38:03 +00:00
Brecht Van Lommel
97ee630dcd Fix #32201: particle size compatibility broken for object/group duplication.
After 2.63 there was a bugfix to take object scale into account for the duplicated
objects, but this breaks compatibility on earlier files. Now there is an option to
control if the scale should be used or not.

Scale is used by default on newer files, and not used on older ones.
2012-08-22 13:10:43 +00:00
Campbell Barton
257c6de9ac copy as script operator for the console, so you can copy input from a console for use in a textblock. 2012-08-19 21:32:18 +00:00
Sergey Sharybin
995a19a983 Sequencer: per-sequence modifier stack for color grading
This implements basic color grading modifiers in sequencer, supporting
color balance, RGB curves and HUE corrections.

Implementation is close to object modifiers, some details are there:

http://wiki.blender.org/index.php/User:Nazg-gul/SequencerModifiers

Modifiers supports multi-threaded calculation, masks and instant
parameter changes.

Also added cache for pre-processed image buffers for current frame,
so changing sequence properties does not require rendering of original
sequence (like rendering scene, loading file from disk and so)
2012-08-19 15:41:56 +00:00
Sergey Sharybin
adec7cdea2 Patch #32326: NDOF support of rotation and panning the view at the same time
Additional changes:
- Option to the ndof menu letting you pick turntable/trackball independently
  of the mouse viewport navigation style
- Option to change the rotation sensitivity separate from the panning

Holding shift + moving the ndof does just as before locking it to panning
Holding ctrl + moving will lock it to only rotation

Patch by Fredrik Hansson, thanks!

Reviewed by self and Mike Erwin.
2012-08-19 13:52:36 +00:00
Campbell Barton
b0371f053c style cleanup 2012-08-17 18:36:20 +00:00
Campbell Barton
9281f3e27e rename mask 'Shrink/Fatten' --> 'Scale Feather' 2012-08-17 13:59:08 +00:00
Campbell Barton
dac761057d fix for crash showing tooltip for NODE_OT_add_search() 2012-08-17 11:31:54 +00:00
Campbell Barton
27a8487070 style cleanup: pep8 & unfinished comment from own commit. 2012-08-14 18:43:15 +00:00
Lukas Toenne
e83ef85576 Python node operator for combined node collapsing and hiding unused sockets. Socket hide flag is added to RNA as well, but can only be set when the socket is not connected, to avoid dangling links in editor drawing. Currently this operator has no default hotkey, but can be called from the Node menu. 2012-08-14 17:56:33 +00:00
Campbell Barton
3220ef9d95 patch [#32327] Uniform displace modifier
from Fredrik Hansson (fredrikh)

With some edits for python UI.
The patch makes the displace modifier treat an empty texture as white.
2012-08-14 17:36:41 +00:00
Campbell Barton
dd2f172fc4 add animation buttons to mask toolbar 2012-08-13 09:13:19 +00:00
Campbell Barton
7d3e854aeb add hook now has option to add to active bone (mango request). 2012-08-13 08:54:33 +00:00
Sergey Sharybin
51fafdee0c Sequencer: overlay display type options
Before this overlay would happen only for defined rectangle area,
now it's possible to show current / reference frames only, which
makes it possible to do more real slit view involving even displaying
frames on different monitors.

Still some work need to be done to clean interface up and support
displaying color information for reference shot.
2012-08-12 13:24:29 +00:00
Sergey Sharybin
a794e19346 Sequencer: support for masked color balance
This implements option which could be used to color balance only
specified area. Currently done by adding Mask input to Adjustment
effect. Affects on color balance and multiply settings.

Supporting masked saturation control is in the list, not supported
in this commit.

Also show value slider in the right of color wheel.
2012-08-11 14:37:58 +00:00
Sergey Sharybin
35e4cfc6d6 Fix effect settings panel for adjustment effect
Since r46801 options used for this effect were moved to input panel.
2012-08-10 16:07:13 +00:00
Campbell Barton
6a1a5ad08b split off auto depth option to have cursor placement use depth too since you dont always want both. 2012-08-10 10:34:24 +00:00
Sergey Sharybin
56b2f4df03 Fix wrong tracks list used for search in Follow Track constraint 2012-08-10 08:51:34 +00:00
Lukas Toenne
b465039ee7 Extended the search operator for nodes to also support node groups. The basic node group type is not included in the node items list, instead all existing node groups are added to the items list in the callback. A prefix is used to distinguish base node types from node groups. 2012-08-10 07:22:36 +00:00
Campbell Barton
e922b72a68 Separate uv selection operator: Y key, behaves much the same way as the mesh separate tool works. 2012-08-09 22:43:10 +00:00
Sergey Sharybin
9f30c7147c Frame matching methods for follow track constraint
This is needed in cases when using blender camera with different
resolution than original footage. Behaves in the same way as
background picture framing.
2012-08-09 16:57:02 +00:00
Campbell Barton
de131177b0 code cleanup: lazy init enum for node search 2012-08-08 17:02:14 +00:00
Lukas Toenne
bd3ec60651 Search option for adding nodes.
The 'Add' menu in the node editor now has an option 'Search' at the top, which opens a separate popup for searching node types by name.

The operator for this is implemented completely in Python (this could also be done for the regular menu-based Add options in the future). There are a few necessary extensions to the RNA as well:

* The View2D struct in regions is now exposed. Currently only contains converter functions for coordinates from the region to the view (i.e. scrolled and zoomed view space). Used for converting mouse location to node space.

* The SpaceNode exposes the existing 'cursor_location' for operators to store mouse position beyond invoke calls. Not used for anything else (transforms) so far.

* The edit_tree in SpaceNode is also exposed, this is needed for operators to work correctly inside node groups.
2012-08-08 16:44:16 +00:00
Mitchell Stokes
47c7266522 Accidentally did a commit when I wanted to revert... (ignore my last revision) 2012-08-08 01:29:20 +00:00
Mitchell Stokes
843b45cafa 2012-08-08 01:24:48 +00:00
Campbell Barton
258b4a8dad add view selected for node view 2012-08-07 16:30:34 +00:00
Sergey Sharybin
4085056218 Place color weels used for color balance in sequencer vertically
This was it makes more sense from accurate tuning point of view.
2012-08-07 14:59:49 +00:00
Campbell Barton
db6c4ba11e bring back the play option from 2.4x 2012-08-06 16:07:11 +00:00
Sergey Sharybin
a334b5a4b6 Made feather self-intersection check an option.
Useful in cases when masking stuff like self-intersecting
ropes. This could probably be smarter option, but can't
currently think about robust approach here.
2012-08-06 15:20:14 +00:00
Campbell Barton
75a188272e move pivot point and cursor out of UV rna into image space since both mask and uvedit use them. 2012-08-06 12:12:45 +00:00
Sergey Sharybin
4f410971c3 Camera tracking presets
- Fix for copy default settings from active track operator
- Add meaningful tracking presets

API changes:

- Added parameter exact to Marker.find_frame, so now it's
  possible to get estimated marker

- Added Marker.pattern_bound_box to get pattern's bound box
2012-08-04 10:47:31 +00:00
Campbell Barton
84df85164d fullscreen mask editing now works in the image space over a viewer node. 2012-08-03 20:56:04 +00:00