Commit Graph

419 Commits

Author SHA1 Message Date
Campbell Barton
d8144ef0f5 style cleanup: comment blocks 2012-10-04 13:26:15 +00:00
Campbell Barton
b288bc4ea4 fix [#32739] Glare node does "add" instead of "lighten" 2012-10-03 07:33:04 +00:00
Campbell Barton
62c151bd1c freeing node trees no longer decreases their user counts, this cause causing invalid memory access when freeing the blend file. 2012-10-02 13:59:05 +00:00
Jeroen Bakker
e795b8410b * fix for regression test [compo_map_uv.blend]
the wrapping was resized to fit the uv map. this step was wrong and has
been deleted.
2012-10-02 11:37:15 +00:00
Jeroen Bakker
ecbeb0f575 * fix for regression file [compo_map_zcombine_cubes.blend]
the alpha mix formula was wrong. updated it.

Be aware that the regression file does not take the alpha into account,
but it should. or at least one z combine should and the other not.

this fails in 2.63a.
 - At Mind -
2012-10-02 10:03:16 +00:00
Sergey Sharybin
20ca67bc35 Fix #32728: File Output node always save as RGBA, even when RGB is selected
Seems to be a regression in new compositor system -- wrong number of planes
was using for image buffer allocation.
2012-10-01 17:38:22 +00:00
Campbell Barton
4b0e41b0a7 fix [#32709] Color mix node produces artifacts from other frames 2012-10-01 06:34:02 +00:00
Campbell Barton
4b6be3c19b fix for using uninitialized blur falloff for dilate/erode node. 2012-09-30 12:24:29 +00:00
Campbell Barton
275c23f81c fix for double free. 2012-09-30 11:15:40 +00:00
Campbell Barton
483a6cd6c2 fix for cycles/python script error in normal panel 2012-09-26 19:23:06 +00:00
Jeroen Bakker
b25cce1430 Compositor:
*  Node muting in node groups didn't work.

[#32597] Mute one node in a group blocks it

It looked for connections in the main tree, and not inside the group.
2012-09-25 13:02:52 +00:00
Sergey Sharybin
9e3e12fa4e Proper fix for #32626: TIFF renders are limited to 8 bit even when we choose 16.
Color management would be applied on both of float and byte buffers on image
save in cases if file format doesn't require linear float buffer and if image
is saving as render result.

This solves both initial report issue and TODO marked in previous fix.

Also de-duplicated image buffer color managing code and gave some more
meaningful names for few functions. Also wrote documentation around this
function, so current assumptions about spaces should be clear enough.

Made regression tests by saving EXR/PNG images to all supported format and
rendering OpenGL/Normal animation, in all cases seems everything is fine,
but more tests for sure would be welcome.
2012-09-24 11:56:07 +00:00
Campbell Barton
34114b3b75 code cleanup: remove/comment unused defines 2012-09-22 13:40:31 +00:00
Campbell Barton
bc69b3a8df style cleanup 2012-09-20 01:32:13 +00:00
Campbell Barton
25c96bc9f3 code cleanup: remove unused macros, commet some which may be useful later - or good to keep for completeness. quieted some warnings and add flags -Wmissing-include-dirs and -Wno-div-by-zero to cmake/gcc 2012-09-20 01:02:39 +00:00
Campbell Barton
8e641348f9 fix own error BLI_rctf_cent_x/y were incorrectly returning int's, also quiet some warnings. 2012-09-18 08:00:19 +00:00
Campbell Barton
d724d0adfe code cleanup: quiet warnings for gcc's -Wundef, -Wmissing-declarations 2012-09-16 00:26:36 +00:00
Campbell Barton
232571c61a code cleanup: replace macro for BLI_rect size/center with inline functions. 2012-09-15 11:48:20 +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
19863a7268 fix for 3 obvious mistakes/bugs. 2012-09-15 06:30:40 +00:00
Campbell Barton
77ed2d8ca9 code cleanup: remove paranoid NULL checks (these cases would crash earlier of the vars were in fact NULL) 2012-09-15 06:29:32 +00:00
Campbell Barton
883117077b fix for 2 crashes freeing masks
- freeing a mask from RNA BKE_libblock_free() twice on the mask.
- loading a new blend file would only free the mask and not unlink it from nodes - it would access freed memory.
2012-09-14 01:15:08 +00:00
Jeroen Bakker
773ea9b93d Fix for [#32536] Mixing with translated images in compositor produces
garbage strips for each tile

Promoted the behaviour of combine channels to node operation so that all
nodes use the same implementation. (CombineChannel had a better
implementation)
2012-09-11 16:57:05 +00:00
Campbell Barton
a9f10b6bc2 style cleanup 2012-09-08 06:40:03 +00:00
Campbell Barton
04b5ef20f1 style cleanup: indentation 2012-09-06 02:20:03 +00:00
Campbell Barton
47ec91e8d3 code clenup: comments and some style edits on ghost/osx (odd indentation) 2012-09-06 02:10:09 +00:00
Campbell Barton
d75a66674d code cleanup: remove deprecated defines and some struct members 2012-09-06 00:33:59 +00:00
Antony Riakiotakis
9ca25136a1 Fix compositor crash. g_highlightedNodes can be NULL. 2012-09-05 13:50:24 +00:00
Jeroen Bakker
7efe2153b2 * gcc 4.7 is more strict. This patch will remove 'non virtual
destructor warnings' in the core of the compositor.
2012-09-05 08:50:25 +00:00
Campbell Barton
1d4316f35f fix [#32490] Compsitor crashes on missing OpenEXR multilayer files 2012-09-04 19:42:09 +00:00
Campbell Barton
306e2b4878 stule cleanup 2012-09-04 18:47:08 +00:00
Jeroen Bakker
d4be0ec9fb * there is a tiny memory leak. I think it happens when you quit blenden
during a WM_draw. tiny is max 8* size of pointer and it is maintained at
that size. So no worries there.
 * cleanup some code to be certain that deinitialization happens
correctly.
2012-09-04 11:08:47 +00:00
Campbell Barton
aaafa0c2fe code cleanup: move file string defines into BLI_path_utils.h, BKE_utildefines is now unused but keep incase we want to add defines there later. 2012-09-03 22:04:14 +00:00
Sergey Sharybin
eff97a82f8 Fix for compositor always cacheing frames when using Movie Clip input node
Issue was caused by getting image from compositor node conversion code,
now it'll check whether rendering happens and if so, frame wouldn't be
stored in the cache.

This possible fixes #32465: Memory leak when rendering
2012-09-03 14:26:53 +00:00
Brecht Van Lommel
d6ec4b874b Compositor: initialize OpenCL only when the option is enabled. This eliminates
error prints or even crashes for poor OpenCL implementations when not using it.
2012-09-03 12:52:21 +00:00
Jeroen Bakker
8fd7471143 cleanup pixel sampler code (pixel interpolations in compositor) 2012-08-28 10:41:37 +00:00
Campbell Barton
a7831c74e6 fix for bug in variable size blur compositor node - using incorrect Y blur operations and uninitialized memory was causing random blur results. 2012-08-24 12:48:56 +00:00
Campbell Barton
65dbeabdc6 style cleanup: indentation, also quiet double promotion warnings for despeckle node. 2012-08-23 16:17:47 +00:00
Campbell Barton
4e772065d7 set defaults for de-speckle 2012-08-23 07:02:11 +00:00
Campbell Barton
1ab5a4f0ed despeckle composite node 2012-08-23 06:48:01 +00:00
Campbell Barton
45a0287f45 change I made gave a little nicer bleeding direction for inpaint but introduced dithering artifact. 2012-08-23 06:27:12 +00:00
Campbell Barton
3090ae35af fix [#32374] Curve compositor UI drawing glitch
copy the curve for the compositor.
2012-08-21 15:14:29 +00:00
Campbell Barton
8bd7c3fba2 change curve evaluation functions never to modify curve data (ensures thread safety), now initializations has to be done outside evaluation. 2012-08-21 14:43:51 +00:00
Jeroen Bakker
ae9f5239a6 Fix for
* [#32356] Problem with "Ghost" in the "Glare" Node in Compositor
2012-08-21 10:45:01 +00:00
Campbell Barton
988df24551 compositor color curve was MEM_dupallocN'ing the curve for every pixel calculation (when there were black or white inputs on the curve node).
avoid allocation by using local vars for black/white storage & curve calculation.
2012-08-21 08:30:45 +00:00
Campbell Barton
49d3766ceb code cleanup: use math functions for curve compo code. 2012-08-21 08:20:32 +00:00
Campbell Barton
77f47799dd code cleanup: use BLI_RCT_SIZE macro 2012-08-20 23:06:17 +00:00
Campbell Barton
58ab8d5c0a use BLI math length functions for distance compositor operations. 2012-08-19 10:41:16 +00:00
Dalai Felinto
48eb27791b The Distance Node in 2.49/2.5/2.6 pre-tiles has a different calculation for RGB and YCC. While RGB
calculate the distance in 3d between R,G and B, the YCC only takes Cb and Cr
into consideration.

This commit makes COM_DistanceMatteOperation inheritable and expose the calculate distance function
to be re-implemented for the YCC node operation.

Thanks Troy Sobotka for the report over email.
Patch incorporates review suggestions by Jeroen Bakker.
2012-08-19 03:05:38 +00:00
Campbell Barton
9e742ffc2b style cleanup: also correct some doxy comments 2012-08-18 13:07:48 +00:00