Commit Graph

4905 Commits

Author SHA1 Message Date
Sergey Sharybin
b1afaa8312 Merging r51923 through r52851 from trunk into soc-2011-tomato 2012-12-10 15:18:00 +00:00
Sergey Sharybin
da24aa8d10 Merging r51897 through r51922 from trunk into soc-2011-tomato 2012-11-05 19:57:59 +00:00
Sergey Sharybin
18326d852b Merging r50625 through r51896 from trunk into soc-2011-tomato
Merging just in case we'll want to develop some experimental stuff
2012-11-05 19:42:27 +00:00
Sergey Sharybin
de7a57a242 Merging r50522 through r50572 from trunk into soc-2011-tomato 2012-09-13 11:13:13 +00:00
Sergey Sharybin
5f512bec47 Sequencer: added option to calculate modifiers in linear space
It was really annoying mistake in original support of logarithmic color space
for sequencer which made adjustment layers be working in linear space. Seems
this was only an issue for modifiers in adjustment effect.

Now all modifiers are applying in sequencer's color space (in fact, this was
fixed in svn rev50275).

To preserve compatibility of Mango grading added this option which probably
wouldn't be used by others.
2012-09-11 12:35:25 +00:00
Sergey Sharybin
777a49dfef Merging r50502 through r50521 from trunk into soc-2011-tomato 2012-09-11 09:13:57 +00:00
Sergey Sharybin
b0605eed2c Color Management: finish pipeline changes
This commit hopefully finishes color management pipeline changes, implements
some missed functionality and fixes some bugs.

Mainly changes are related on getting rid of old Color Management flag which
became counter-intuitive in conjunction with OpenColorIO.

Now color management is always assuming to be enabled and non-color managed
pipeline is emulated using display device called None. This display has got
single view which is basically NO-OP (raw) transformation, not applying any
tone curve and displays colors AS-IS. In most cases it behaves the same as
disabling Color Management in shading panel, but there is at least one known
difference in behavior: compositor and sequence editors would output images
in linear space, not in sRGB as it used to be before.

It'll be quite tricky to make this behave in exactly the same way as it
used to, and not sure if we really need to do it.

3D viewport is supposed to be working in sRGB space, no tonemaps would be
applied there. This is another case where compatibility breaks in comparison
with old color management pipeline, but supporting display transformation
would be tricky since it'll also be needed to make GLSL shaders, textures
and so be aware of display transform.

Interface is now aware of display transformation, but it only uses default
display view, no exposure, gamma or curve mapping is supported there.
This is so color widgets could apply display transformation in both
directions. Such behavior is a bit counter-intuitive, but it's currently
the only way to make color picking working smoothly. In theory we'll need
to support color picking color space, but it'll be also a bit tricky since
in Blender display transform is configurable from the interface and could
be used for artistics needs and in such design it's not possible to figure
out invertable color space which could be used for color picking.

In other software it's not so big issue since all color spaces, display
transform and so are strictly defined by pipeline and in this case it is
possible to define color picking space which would be close enough to
display space.

Sequencer's color space now could be configured from the interface --
it's settings are situated in Scene buttons, Color Management panel.
Default space is sRGB. It was made configurable because we used vd16
color space during Mango which was close to Film view used by grading
department.

Sequencer will convert float buffers to this color space before operating
with them hopefully giving better results. Byte buffers wouldn't be
converted to this color space an they'll be handled in their own colors[ace.
Converting them to sequencer's working space would lead to precision loss
without much visible benefits. It shouldn't be an issue since float and
byte images would never be blended together -- byte image would be converted
to float first if it's needed to be blended with float image.

Byte buffers now allowed to be color managed. This was needed to make code
in such areas as baking and rendering don't have hardcoded linear to sRGB
conversions, making things more clear from code point of view.

Input color space is now assigning on image/movie clip load and default
roles are used for this. So for float images default space would be rec709
and for byte images default space would be sRGB.

Added Non-Color color space which is aimed to be used for such things as
normal/heights maps. It's currently the same as raw colorspace, just has
got more clear naming for users. Probably we'll also need to make it not
affected by display transformation.

Think this is all main pipeline-related changes, more details would be there:

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management

Other changes and fixes:

- Lots of internal code clean up in color management module.

- Made OpenColorIO module using guarded memory allocation. This allowed to
  fix couple of memory leaks and would help preventing leaks in the future.

- Made sure color unpremultiply and dither are supported by all OpenColorIO
  defined color transformations.

- Made compositor's preview images be aware of display transformation.
  Legacy compositor still uses old Color Management flags, but likely we'll
  disable compositor for the release and remove legacy code soon, so don't
  think we'll need to spend time on porting that code to new color management
  system.

- Made OpenGL rendering be aware of display transform when saving render
  result. Now it behaves in the same way as regular rendering.

TODO:

- HSV widgets are using linear rgb/sRGB conversions for single channel,
  not sure how this should be ported to new color pipeline.

- Image stamp would use hardcoded linear rgb to sRGB conversion for
  filling rectangles. Probably it should use default display view
  for this instead, would check this with Brecht.

- Get rid of None color space which was only used for compatibility reasons.

- Made it more clear which color spaces could be used as input space.

- There're also some remained TODO's in the code marked as OCIO_TODO,
  but wouldn't consider them as stoppers for at least this commit.
2012-09-10 11:46:15 +00:00
Sergey Sharybin
832841d50f Merging r50484 through r50501 from trunk into soc-2011-tomato 2012-09-10 10:58:59 +00:00
Sergey Sharybin
62076905a3 Merging r50457 through r50469 from trunk into soc-2011-tomato 2012-09-07 12:53:41 +00:00
Sergey Sharybin
201583592f Code cleanup -- remove unneeded changes, synchronize some areas with trunk 2012-09-05 12:00:08 +00:00
Sergey Sharybin
3963425006 Merging r50374 through r50412 from trunk into soc-2011-tomato 2012-09-05 11:42:20 +00:00
Sergey Sharybin
e15f352831 Merging r50265 through r50373 from trunk into soc-2011-tomato 2012-09-04 09:06:37 +00:00
Sergey Sharybin
d6a617ff06 Merging r50248 through r50264 from trunk into soc-2011-tomato 2012-08-29 12:49:10 +00:00
Bastien Montagne
40e3af441b Adding despeckle as “blender” word... 2012-08-27 21:01:21 +00:00
Campbell Barton
5f902ed455 svn merge ^/trunk/blender -r50240:50244 2012-08-27 09:46:49 +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
Sergey Sharybin
c294ae035f Merging r50192 through r50223 from trunk into soc-2011-tomato 2012-08-26 14:12:09 +00:00
Campbell Barton
d5fdec6619 add manual lookup to addon tempalte 2012-08-25 15:00:41 +00:00
Campbell Barton
6b1582c012 better handle sizes by default for mask mode, now ignore image width/height 2012-08-25 14:18:54 +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
Campbell Barton
71d1b09708 minor code cleanup 2012-08-25 12:55:14 +00:00
Campbell Barton
179ac9ebc0 baking actions with euler rotations now uses compatible eulers for pose and object bakes. 2012-08-25 12:37:15 +00:00
Campbell Barton
043783c20b use set's when checking against multiple types. 2012-08-25 11:54:58 +00:00
Sergey Sharybin
6bf49c47f8 Merging r50162 through r50171 from trunk into soc-2011-tomato 2012-08-24 09:09:33 +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
Sergey Sharybin
6f1680e1b7 Merging r50149 through r50156 from trunk into soc-2011-tomato 2012-08-23 13:51:41 +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
1f79fa111f Merging r50147 through r50148 from trunk into soc-2011-tomato 2012-08-23 09:05:45 +00:00
Sergey Sharybin
9bae78ed5d Sequencer: move up/down operators for modifiers 2012-08-23 09:04:30 +00:00
Sergey Sharybin
6900c792d1 Merging r50119 through r50132 from trunk into soc-2011-tomato 2012-08-22 17:23:02 +00:00
Campbell Barton
6143acf878 hook menu was using last remembered use_bone setting 2012-08-22 15:38:03 +00:00
Sergey Sharybin
dd65a6b67d Color Management: pipeline cleanup
- Move color management settings to scene, so it's now clear for
  all areas (such as compositor, sequencer) which settings to
  use for display buffers

- Currently removed per-editor color management settings. It could
  be nice to have them, but they don't fit nicely into overall
  pipeline and could be added as a override settings for display
  only later.

- Make sequencer working in space defined by sequencer_workspace
  role in OCIO configuration file.
  If this role is not set, sequencer will fallback to legacy sRGB
  Gamma 2.2 space.

  Currently use vd16 color space for sequencer. Not sure what exactly
  this color space is, but it's pretty close to SPI Film view and
  it's still invertable.

- Sequencer will now output linear float buffers, not color managed
  float buffers.
  Before this sequencer used to output float buffers in sRGB space,
  which was sequencer's working space. Now it can not output buffers
  in this space since other areas are not aware of this space.
  This also makes it's consistent that all float buffers in Blender
  are in linear space.

- When saving render result into byte file format scene's display
  transform would be applied on this buffer.
  When saving files from image editor, there'll be a display
  transform settings which are default set to scene's settings but
  could also be overwritten.

Additional details are there (would be extended soon):

  http://wiki.blender.org/index.php/User:Nazg-gul/ColorManagement
2012-08-22 14:23:08 +00:00
Sergey Sharybin
24498f084d Merging r50113 through r50118 from trunk into soc-2011-tomato 2012-08-22 13:46:23 +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
c984a8fa56 svn merge ^/trunk/blender -r50107:50112 2012-08-22 12:04:27 +00:00
Campbell Barton
7d673ef0d2 fix for blend_render_info.py not closing file & some edits to comments. 2012-08-22 10:29:30 +00:00
Campbell Barton
28b9576f4b error message when an addon was missing register/unregister functions whasnt very good (didnt point to file with the error) 2012-08-22 10:03:37 +00:00
Campbell Barton
1920c4ef39 svn merge ^/trunk/blender -r50023:50036 2012-08-20 10:16:22 +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
fb5c39f5c2 Merging r50016 through r50021 from trunk into soc-2011-tomato 2012-08-19 15:44:59 +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
21e403e546 Merging r49953 through r50015 into from trunk into soc-2011-tomato 2012-08-19 13:57:55 +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
6a64f544b1 svn merge ^/trunk/blender -r49945:49947 2012-08-17 11:35:14 +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
f82b93b2c5 svn merge ^/trunk/blender -r49890:49917 2012-08-15 10:36:31 +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