Commit Graph

4723 Commits

Author SHA1 Message Date
Sergey Sharybin
6bfe9266be Color management cleanup and improvements
- De-duplicate code used by color management panel drawing,
  moved this panel to utility file in bl_ui

- Added support of per-window color management control
  which means view transform. exposure and gamma could be
  set per window and all spaces would use this settings.

  This is default behavior for older files now.

- Added support of color management display of movie clips
  in clip editor.

  Supported both texture buffer and fallback draw methods.

- Fixed default values for exposure and gamma
2012-06-30 12:37:41 +00:00
Sergey Sharybin
b57a5521c4 Color management refactoiring and some extra options
- Move space-being settings (such as view transform) into own
  DNA and RNA structure to avoid code duplication in some areas
  and save some arguments on display buffer acquiring function.

  Also added some utility functions to BKE to manipulate this
  settings.

- Replace static sized color managed buffer flags array with
  dynamically sized array which matches actual number of displays.

  Probably this flags better be transfposed so it'll support
  any number of view transforms and 32 displays (currently it's
  other way around). it's runtime flags only, so would be simple
  to change any time.

- Added support of configurable exposure and gamma.

  Changing this settings wouldn't generate new item in cache,
  it'll affect on buffer with the same color spaces conversion.

  It'll also run full color transform from scratch on every run,
  this could be changes in a way that it'll re-use color managed
  buffer, but from quick glance it doesn't give really noticeable
  boost.

  Currently this settings are stored as pointer in ImBuf structure
  itself. Probably it make sense removing them from ImBuf and make
  moviecache be able to store some kind of tags associated with
  cached ImBuf.
2012-06-30 12:37:16 +00:00
Sergey Sharybin
d0f67e498e Color management fixes and improvements
- Made color management cache safe for situations when one area
  requested a display buffer, then some changes were done which
  invalidated cache, other area requested display buffer which
  changed cached buffer.

  Suck case could be fatal for first used of display buffer,
  which didn't happen yet because cache is being accessed from
  main thread only, but better to keep this things completely
  thread save to avoid headache in the future.

- Baked RRT transformations, which gives ~3-4 times boost
  hopefully without visible artifacts.

- Added support of partial updates to display buffers.

  This would create special context which hols display buffer
  which imbuf had to the time of creating this context and
  later this context would allow to run a color correction
  from given linear buffer within given region.

  This is being used by compositor to enable more realtime
  display update when compositing.

- Added support of color management backdrop for nodes editor.

  There's now special menu called display properties in N-panel
  of nodes editor.

  Probably this better be de-duplicated somehow, but not sure
  yet how. Currently it's not so harmful to have panel for two
  spaces which contains only 2 properties.

  There's currently one unsolved issue with backdrop:
  it's not being updated progressively when just loading the
  file -- it's simply because there's no color managed display
  buffer for backdrop yet, and compositor doesn't actually
  know which color space to use here to generate preview to.
2012-06-30 12:36:03 +00:00
Campbell Barton
5bdf98b399 svn merge ^/trunk/blender -r48409:48411 2012-06-29 14:39:38 +00:00
Lukas Toenne
83093d6770 Extended modes for snapping in the node editor.
The transform operators in nodes will now use the unselected nodes to generate snapping points. Unlike object snapping, node snapping works for the x/y axes separately and snaps node borders to same borders of unselected nodes. The sensitive area for node borders extends over the whole view2D range, to enable simple alignment of nodes in both x and y direction.

For snap points in the node editor an additional enum value is stored to indicate the type of node border (left/right/top/bottom). This works as a constraint on possible node alignments: only same border types align with each other.
2012-06-29 14:34:46 +00:00
Campbell Barton
e6469eb178 svn merge ^/trunk/blender -r48378:48406 2012-06-29 13:11:44 +00:00
Bastien Montagne
4f294a8f02 Fixing a bug found while checking "[#31937] UV/Image Editor: Copy Mirrored UV Coords" (which isn't a bug at all).
The tool works OK, except it was messing vertices' order of polys, often giving ugly results! Now only using sorted list of vertices indices to find matching polys.
2012-06-29 12:41:39 +00:00
Campbell Barton
bd21001aaf fix for bug where user scripts path set by an environment variable would write presets there but not show up in the menu. 2012-06-29 08:33:13 +00:00
Campbell Barton
acb0a50fb3 print warning if a script in the addons dir has no bl_info. 2012-06-28 19:22:13 +00:00
Campbell Barton
6b345811b7 svn merge ^/trunk/blender -r48333:48370 2012-06-28 11:20:19 +00:00
Lukas Toenne
855b6391ea Basic snapping in node transform operator.
Snapping actually was working already, but grid spacing was set to 1.0, which is basically pixel size in the node editor. Increased this to 1x grid step for fine snapping and 5x grid step for rough snapping.

Grid drawing in node editor now draws 2 levels in slightly different shades to indicate the different snapping modes better.

Node editor also supports the general use_snap tool setting to enable automatic snapping during transform. For now only the incremental snapping is supported, in future could be extended to enable alignment between nodes in a number of ways.
2012-06-28 08:47:22 +00:00
Campbell Barton
a09feb7386 option so operators can be executed with undo enabled (and redo). 2012-06-27 21:41:17 +00:00
Sergey Sharybin
8f8d7f586a Clean-up and refactor of current OCIO integration
- Cleaned up some files -- seems there were some wrongly resolved
  conflicts which resulted into duplicated code in space_image.py
  and some build configuration files.
- Store all color space related data (such as display device, view
  transform and so) as strings, so it could easily be ported to new
  OCIO configuration files and it'll be much more portable between
  different configurations.

  This required adding some look-ups to RNA associated with such
  settings, but it's indeed the only way to do this. If it'll be
  figured out such look-ups causes performance issues it's possible
  to optimize this further using hash. So far it's only few elements
  in list to be looked up.
- Added support of display device transformation from OCIO
  configuration files. Display device is setting per-window and
  different windows could have different display devices, so it's
  possible to have one blender window opened on sRGB monitor and
  another one on xyz projector.

  Display device is ignored when using ACES ODT Tonecurve view
  transform due to it's not an OCIO transformation. Probably it'll
  be possible to get rid of this tone curve soon (if it'll be
  proved useless or it'll be implemented as a part of OCIO LUT).
- Movie Cache now supports deleter functions for user keys, so
  such keys could have some allocated data which would be removed
  as soon as element in cache is being removed.
- Movie Cache now support callbacks to check whether current
  cache element could be removed from a cache due to it wouldn't
  be accessed anymore.
- Re-written cache stuff for display buffers of ImBuf. Now it's
  using Movie Cache which is global for all ImBufs.

  Probably it's not implemented in fastest way, would be investigated
  further and probably changed it performance wouldn't be good enough.
2012-06-27 18:10:53 +00:00
Campbell Barton
17516fee26 svn merge ^/trunk/blender -r48245:48254 2012-06-25 07:41:01 +00:00
Campbell Barton
f6337a2843 utility mesh function to return UV islands 2012-06-25 07:24:01 +00:00
Sergey Sharybin
06fb9c85d4 Merging r48196 through r48223 from trunk into soc-2011-tomato 2012-06-23 18:08:56 +00:00
Guillermo S. Romero
a21a0a4dcf SVN maintenance. 2012-06-23 02:10:54 +00:00
Gaia Clary
d0bf289f68 Fix: Collada (Exporter) replaced the initial operator Presets with 2 up to date versions 2012-06-22 17:14:50 +00:00
Campbell Barton
23c38bc5e7 svn merge ^/trunk/blender -r48168:48188 2012-06-22 11:56:21 +00:00
Campbell Barton
238d3fa4bb mask re-key feature - mango request. ability to reset selected points shape key data.
useful if you add many keys to one part of a curve, then later want to key another part - but dont want to continuously make the same corrections.
2012-06-22 11:53:49 +00:00
Campbell Barton
9653234634 svn merge ^/trunk/blender -r48162:48168 2012-06-21 14:38:45 +00:00
Thomas Dinges
b4440696a5 Themes:
* Fixes for the "Back to Black" theme, patch by meta-androcto. Fixed text editor select & vert edge select color. Thanks!
2012-06-21 14:05:31 +00:00
Campbell Barton
78b2f5df47 svn merge ^/trunk/blender -r48147:48153 2012-06-21 08:07:49 +00:00
Bastien Montagne
19e81b12e7 Fix [#31714] Pinning object context causes texture list to disappear
Problem was py code of main texture panel was not doing any check on the pinned id, assuming it managed the textures itself - but this is not the case of the Object datablock...

All work actually done by Sergey, was just missing the Lamp specific case. Checked both in code and with tests, quite sure all cases are now correctly handled!
2012-06-21 07:32:06 +00:00
Campbell Barton
b7640d614a svn merge ^/trunk/blender -r48140:48147 2012-06-21 06:10:51 +00:00
Mitchell Stokes
501922782f Fix for [#31792] "Character Physics type not detected by near sensor" reported by Mikko-Pentti Eronen.
Near sensors only pick up "actors," but objects with character physics did not have the actor option displayed. By setting the character physics object to actor, it can be picked up by the near sensor. However, it collides with the near sensor, which sounds like bug [#31701]
2012-06-21 05:30:57 +00:00
Campbell Barton
e631cf7062 svn merge ^/trunk/blender -r48119:48129 2012-06-20 17:12:20 +00:00
Sergey Sharybin
aa30e20272 Fix #31852: Sequencer duplicate cant move strips on Y axis in a meta
Issue was caused by some stuff happenign in wm_operator_finish() which uses
to somehow restore changes made by transformation invoke function.

Solved by not calling translation operator directly from duplication operator
(which is in fact really tricky) and use macros instead. This macros calls
duplication operator which simply duplicates strip, and then calls translation
operator.
2012-06-20 14:20:03 +00:00
Campbell Barton
fdfc8cb17e svn merge ^/trunk/blender -r48114:48119 2012-06-20 14:15:01 +00:00
Campbell Barton
72f7ab441d removing from group now shows menu to select group to remove. 2012-06-20 14:13:22 +00:00
Campbell Barton
2e913da8e4 svn merge ^/trunk/blender -r48105:48109 2012-06-20 10:03:02 +00:00
Campbell Barton
fca0112ba3 add back blending for vertex and weight paint modes, you may want to keep the one brush and switch blending options. 2012-06-20 09:34:26 +00:00
Campbell Barton
b0b96bd9a1 add in convenience var 'D = bpy.data' - to the python console, add note for C, D - in initial message. 2012-06-20 08:49:59 +00:00
Campbell Barton
858ad8d725 svn merge ^/trunk/blender -r48078:48105 2012-06-20 07:43:49 +00:00
Campbell Barton
98e6912480 style cleanup 2012-06-19 22:17:19 +00:00
Bastien Montagne
69e07714b9 Fix part 1 of [#31840] Quick Explode Bugs related to it's fade option.
Patch by Philipp Oeser (lichtwerk), just did style change (better to not define a value twice, so only affecting the three color components, not the alpha, also using the slice syntax makes things much more compact ;) ), thanks!
2012-06-19 16:45:48 +00:00
Campbell Barton
66617d1b13 svn merge ^/trunk/blender -r47961:48070 2012-06-19 08:16:07 +00:00
Sergey Sharybin
a558eed3e4 Fix #31838: Console error with particle Child Simplification is enabled.
Patch by Philipp Oeser, thanks!
2012-06-18 12:29:44 +00:00
Gaia Clary
9f6a66d5f9 Collada: (Exporter) Add new option 'deform bones only' 2012-06-15 22:00:25 +00:00
Sergey Sharybin
471627ba96 Commit current patch needed for color pipeline investigation in Mango Project
This commit simply adds view transform option for image editor. This transform
is being applied on original linear color when float buffer is being converted
into sRGB byte buffer.

Currently supports such transformations:
- ACES ODT ToneCurve transform which shall preserve color ranges on such
  a conversion.
- OCIO Raw, Log and RRT view transforms

This commit also contains integration of OCIO backends to Blender, so
now there's c-api and configuration file. Most of things were got from
branch where Xavier Thomas and Lukas Toene were working.

NOTE:
This is just for testing our pipeline, please do not bother me with messages
it's done wrong. It is done correct to support our own pipeline for now, and
real design would be created later when current stoppers for the project are
gone.
2012-06-15 15:00:51 +00:00
Campbell Barton
46ea5670db scale node - framing offset: compatible with camera shiftX/Y and the viewport option. 2012-06-15 07:50:27 +00:00
Gaia Clary
8ae116fbbb Collada: (Exporter) fix Operator preset 2012-06-14 19:19:11 +00:00
Campbell Barton
99f7c06d7e added mask tool to recalculate handles (Ctrl+N) 2012-06-13 14:09:20 +00:00
Campbell Barton
2e72720718 apply offset to the camera view - this works exactly like camera shift (transforms X/Y in the same space). 2012-06-13 13:23:48 +00:00
Campbell Barton
91781c76c4 framing options for camera background image: stretch/fit/crop 2012-06-13 12:58:01 +00:00
Campbell Barton
dcda234a3d update themes for new colors, patch by Brendon Murphy 2012-06-13 11:40:49 +00:00
Sergey Sharybin
5dc0b35a01 Added frame offset slider to clip datablocks
In contrast to start_frame (which affects on where footage actually
starts to play and also affects on all data associated with a clip
such as motion tracking, reconstruction and so on) this slider only
affects on a way how frame number is mapping to a filename, without
touching any kind of tracking data.

The formula is:
  file_name = clip_file_name + frame_offset - (start_frame - 1)
2012-06-12 21:25:23 +00:00
Sergey Sharybin
128b0f9788 Added Selected Only and Show Hidden flags to clip editor's curve view 2012-06-12 17:11:16 +00:00
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