Commit Graph

32822 Commits

Author SHA1 Message Date
Brecht Van Lommel
7c8f82a174 Cycles: regular rendering now works tiled, and supports save buffers to
save memory during render and cache render results.


Implementation notes:

In the render engine API it's now possible to get the render result for
one render layer only, and retrieve the expected tile size in case save
buffers is used. This is needed because EXR expects tiles with particular
size and coordinates.

The EXR temporary files are now also separated per layer, since Cycles
can't give the full render result for all render layers, and EXR doesn't
support writing parts of tiles.

In Cycles internally the handling of render buffers and multi GPU
rendering in particular changed quite a bit, and could use a bit more
refactoring to make things more consistent and simple.
2012-06-28 10:34:38 +00:00
Sergey Sharybin
53bb66e291 Move color management check stuff from blo_read_file_internal to setup_app_data 2012-06-28 10:05:22 +00:00
Campbell Barton
41ff120e65 fix for segfault on undo because of loading color profile info. 2012-06-28 09:18:07 +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
bb1432f2de svn merge ^/trunk/blender -r48321:48333 2012-06-27 14:36:06 +00:00
Campbell Barton
7518654a51 add access to dissolve_limit from python. 2012-06-27 14:01:58 +00:00
Campbell Barton
78ae6ac2a5 utility function to get the points inside a list of planes. 2012-06-27 09:51:22 +00:00
Campbell Barton
9beef7442c style cleanup: also some spelling correction. 2012-06-27 05:59:41 +00:00
Campbell Barton
3e305c1018 bmesh.ops module for bmesh operator access, only remove_doubles and convex_hull at the moment. 2012-06-26 21:40:01 +00:00
Campbell Barton
4b4eace3ab svn merge ^/trunk/blender -r48313:48321 2012-06-26 20:36:19 +00:00
Campbell Barton
200584e5c6 fix for a handful of memory leaks relating to parsing and allocating arbitrary sized vectors from python args.
Vector.dot() was always leaking memory, and would crash if args sizes didnt match.

These errors were introduced with n-dimensional vector support.

also fixed an error with bmesh py api allocation.
2012-06-26 16:58:58 +00:00
Sergey Sharybin
c837fcbb4b Merging r48308 through r48313 from trunk into soc-2011-tomato 2012-06-26 15:29:22 +00:00
Sergey Sharybin
de00723049 Fix for crash of keying screen node in cases when there's no
triangulation generated for tracks setup
2012-06-26 15:26:16 +00:00
Campbell Barton
e32c467713 mathutils.Vector(kw=value) wasn't raising an error as it should. 2012-06-26 14:49:49 +00:00
Sergey Sharybin
00bbf5a72f Fix issue with resetting active nurb when sawing from edit mode
Issue was caused by loading editNurb into normal nurbs when saving,
this used to set active nurb to NULL.

This isn't actually needed, because active nurb would be set properly
on making editNurb and even if one accessed to active spline via PY API
when object is in object it'll be completely harmless.
2012-06-26 10:18:53 +00:00
Campbell Barton
c55c194a07 svn merge ^/trunk/blender -r48305:48307 2012-06-26 10:17:11 +00:00
Campbell Barton
79ab7f95f9 mask and grease pencil now display in the dope sheet summery 2012-06-26 10:14:50 +00:00
Sergey Sharybin
58e5ce42db Merging r48303 through r48305 from trunk into soc-2011-tomato 2012-06-26 09:48:24 +00:00
Sergey Sharybin
cd6ed0bee5 Optimization of keying screen node
When creating tile data include only triangles which have got intersection
with tile's rectangle only. This saves quite a lot of per-pixel iterations
through triangles which simply can not affect on current tile.

In fact, it's AABB check is used here. It could be improved further, but
it'll slowdown tile data generation with questionable speedup.

Another major slowdown is in fact caused by voronoi triangulation code.
Currently it's used naive algorithm which is O(N^2) where N is number
of edges. Added few euristics there and removed unused part of code, which
gave quite noticeable speedup already.

This could be improved further, but this node is not ment to be used for
lots of markers. It's also generates wrong triangulation when there're
many sites used. Need to be investigated further.
2012-06-26 09:46:24 +00:00
Campbell Barton
bf19327465 fix for checking wrong flag with removing mask shape keys doubles on the dope sheet. 2012-06-26 08:25:17 +00:00
Campbell Barton
6a58afaaa4 svn merge ^/trunk/blender -r48288:48302 2012-06-26 07:44:59 +00:00
Campbell Barton
d4cfdc69ef quiet all -Wshadow warnings in the compositor. 2012-06-26 07:32:24 +00:00
Campbell Barton
69ab13a7db rename remaining class members with m_ prefix. 2012-06-26 07:09:49 +00:00
Campbell Barton
6a1d82490e use m_ prefix for compositor class members (all compositor operations). 2012-06-26 01:22:05 +00:00
Joshua Leung
7a0ab62d3f Bugfix [#31930] DopeSheet - Grease Pencil mode collapses visible channels when
switch channel

This was caused by a typo, which would end up toggling the expanded status of
the Grease Pencil datablock (gpd->flag & 4) instead of the layer active status
(gpl->flag & 4).
2012-06-26 00:35:05 +00:00
Sergey Sharybin
41e256530a Merging r48284 through r48288 from trunk into soc-2011-tomato 2012-06-25 19:52:07 +00:00
Sergey Sharybin
01dea9ff85 Fixed crash when trying to perform transformation in Clip Editor without clip opened
Reported by JumboCoDeC in IRC. Thanks for the report.
2012-06-25 19:48:05 +00:00
Campbell Barton
4da7b7089d make hue correct grid more faded out. 2012-06-25 19:42:10 +00:00
Campbell Barton
57a57c4e39 svn merge ^/trunk/blender -r48276:48283 2012-06-25 18:03:19 +00:00
Campbell Barton
fa0c5a100d fix for crash with blur - happened most when there was a size input, need to mutex lock before allocating the gauss array.
also add suspiciously missing call to BlurBaseOperation::initExecution, X had but Y was missing.
2012-06-25 18:01:01 +00:00
Jeroen Bakker
6badc77cb0 code cleanup 2012-06-25 17:27:54 +00:00
Jeroen Bakker
2e7f7d177a fix for [#31899] Compositor: scale to rendersize doesn't work on
separate channels
2012-06-25 17:26:18 +00:00
Campbell Barton
0ec6d28352 correct free command for an array in the compositor 2012-06-25 17:09:11 +00:00
Sergey Sharybin
8f53bd019f Merging r48264 through r48276 from trunk into soc-2011-tomato 2012-06-25 16:37:58 +00:00
Sergey Sharybin
c41b91f8c2 Ignore disabled markers when building keying screen. 2012-06-25 16:36:22 +00:00
Sergey Sharybin
1080c43d1c Camera solver: take track offset into account
This helps in cases when it's needed to track a feature which
goes out of screen for a while to prevent jump of camera.
2012-06-25 16:36:12 +00:00
Bastien Montagne
d68fc2b916 Fix for [#31900] Loop Selection on wireframe selects vertex behind.
Revert part of r48105 (calling mouse_mesh() in mouse_mesh_loop() is not a good idea, as it might select another element ouside the selected loop, and is anyway overkill!), added lighter code that simply checks for the nearest vertex/face of current edge.
2012-06-25 13:32:04 +00:00
Jeroen Bakker
f80d0913c6 fix for #31914 2012-06-25 12:58:53 +00:00
Brecht Van Lommel
32bf9567d3 Fix #31920: switching from cycles to blender internal with 3d view in rendered
draw mode did not draw the 3d view properly.
2012-06-25 12:13:21 +00:00
Brecht Van Lommel
3271850a2f Fix cycles not working in 3d local view, and missing update when toggling hiding
in the outliner.
2012-06-25 11:43:22 +00:00
Campbell Barton
158a70c8a3 the mutex struct seems to be different across systems, use memset rather then an initializer value.
also quiet warning in cycles.
2012-06-25 11:19:38 +00:00
Jens Verwiebe
23f632a49c Fix compile after 48262 ( braces) 2012-06-25 11:13:27 +00:00
Sergey Sharybin
ae063aae50 Merging r48257 through r48263 from trunk into soc-2011-tomato 2012-06-25 10:56:48 +00:00
Sergey Sharybin
1755a0ada6 Added feather control to keying node
Behaves in the same way as feather dilate/erode node, applies
after dilate/erode in node.

Also use distance dilate/erode instead of size.
2012-06-25 10:50:24 +00:00
Campbell Barton
3c8a4c458b more guardedalloc use in C++, also make compositorMutex a static var, was allocated and never freed. 2012-06-25 10:35:24 +00:00
Campbell Barton
cc0784c1b9 optionally use guarded alloc for tiles compositor, also replace allocation functions with a macro. 2012-06-25 09:14:37 +00:00
Campbell Barton
78196d60d1 comment for TODO - rgb_to_bw / rgb_to_grayscale usage. 2012-06-25 08:58:50 +00:00
Sergey Sharybin
6023c356e5 Merging r48255 through r48256 from trunk into soc-2011-tomato 2012-06-25 08:24:12 +00:00
Sergey Sharybin
44c82198d4 Optimization of Keying Blur operation
Separate X and Y passes of blurring like it's done for flat
gaussian blur. This reduces computing difficulty from size^2
to 2*size without any visual changes in matte.
2012-06-25 08:21:55 +00:00
Campbell Barton
17516fee26 svn merge ^/trunk/blender -r48245:48254 2012-06-25 07:41:01 +00:00