Commit Graph

142 Commits

Author SHA1 Message Date
f213ae0b19 style cleanup 2012-11-01 09:54:00 +00:00
Lukas Toenne
36127e1255 Added compositor graph functions for removing socket connections explicitly in convertToOperations. The InputSocket->unlink function should only be used in combination with relinkConnectionsDuplicate, in which case the original node connection will still exist. This would trigger an assert failure, so the original connection should be removed. Only node using this atm is the channel separation node, but will be needed for future group nodes too. 2012-10-29 14:04:51 +00:00
a49b1d7b5e Oeps... Enabled the pixelate node added documentation, removed unneeded
code
2012-10-24 13:43:32 +00:00
a32d134dc7 Solve unresolved call of min(int&, unsigned int&)
Alternative could be using unsigned ints for min/max chunks.
2012-10-23 16:46:13 +00:00
fec81d9b56 use min_ max_ functions in more places.
also fix minor error in MOD decimate when the modifier did nothing the reported face count would be wrong.
2012-10-23 16:21:55 +00:00
d599b643b7 style cleanup: bge, switch statements mostly.
also left bmesh decimator on in previous commit.
2012-10-21 07:58:38 +00:00
f3ece5a108 style cleanup: trailing tabs & expand some non prefix tabs into spaces. 2012-10-21 05:46:41 +00:00
7deb8d8a26 code cleanup: spelling 2012-10-20 20:36:51 +00:00
Lukas Toenne
97c68098cc Additional debug assert in the compositor for checking correct conversion of Nodes to Operations. This will trigger an assert failure whenever a node has remaining socket connections after conversion. This would mean that not all sockets have been properly relinked and helps detect incomplete code. 2012-10-19 16:29:17 +00:00
27e54f4d37 code cleanup: remove redundant casts. quiet some qualifier warnings. 2012-10-14 07:40:16 +00:00
97d4fb4161 code cleanup: make header defines more consistent, JOYSENSOR header guard had a typo too. 2012-10-09 13:36:42 +00:00
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
bc69b3a8df style cleanup 2012-09-20 01:32:13 +00:00
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
d724d0adfe code cleanup: quiet warnings for gcc's -Wundef, -Wmissing-declarations 2012-09-16 00:26:36 +00:00
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
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
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
a9f10b6bc2 style cleanup 2012-09-08 06:40:03 +00:00
04b5ef20f1 style cleanup: indentation 2012-09-06 02:20:03 +00:00
47ec91e8d3 code clenup: comments and some style edits on ghost/osx (odd indentation) 2012-09-06 02:10:09 +00:00
9ca25136a1 Fix compositor crash. g_highlightedNodes can be NULL. 2012-09-05 13:50:24 +00:00
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
1d4316f35f fix [#32490] Compsitor crashes on missing OpenEXR multilayer files 2012-09-04 19:42:09 +00:00
306e2b4878 stule cleanup 2012-09-04 18:47:08 +00:00
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
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
8fd7471143 cleanup pixel sampler code (pixel interpolations in compositor) 2012-08-28 10:41:37 +00:00
1ab5a4f0ed despeckle composite node 2012-08-23 06:48:01 +00:00
9e742ffc2b style cleanup: also correct some doxy comments 2012-08-18 13:07:48 +00:00
e71d3ee394 use filtersize of 1.0 for distort and uv - compositor nodes.
Experimenting here and 0.765625f is too sharp, but 1.0 wont blur with 0 distorted pixels but gives nice interpolation otherwise.
2012-08-16 16:07:00 +00:00
efa09a2b3d fix memory leak in compositor WorkScheduler::initialize() 2012-08-16 12:47:03 +00:00
3bc16fd60d compositor: replace C++ new/delete with guardedalloc. 2012-08-16 12:32:48 +00:00
add9aea573 compositor - EWA filter was blurring too much by default, this caused the displace node to blur the image when no displacement was applied, making images fuzzy, the original C code has an interpolation option.
Added this option back and use for displace and UV composite nodes.
2012-08-16 10:13:04 +00:00
9591142294 add variable size option to bokeh blur node, remove f_stop option (it wasnt used), and add blur_max to the interface. 2012-08-14 14:31:39 +00:00
9fd6c535ca fix [#32324] regression: node group with missing ID crashes new tile node system.
node groups with no ID now output magenta so it doesnt silently fail.
2012-08-14 11:05:26 +00:00
e28fcec042 Fix for [#32220] regression - DistortionCache is never freed.
* at max 10 cache items will be available. Items will be removed by
latest usage.
 * number of cached items can be adjusted in code
 * added deinitialization of compositor when blender exists.
 * updated scons and cmake build files
2012-08-13 10:56:36 +00:00
b96c622015 style cleanup 2012-08-11 22:12:32 +00:00
ca7c07cda9 add back datatoc, use this instead of cmake script which was too slow. 2012-08-11 16:25:31 +00:00
94a3945cf9 code cleanup: compositor - define size for executePixel function output float array 2012-08-10 14:07:24 +00:00
e877247789 use define for bokeh blur size, also define size of determineResolution args. 2012-08-10 13:23:31 +00:00
4f1b0e473b add asserts in MemoryBuffer.readNoCheck() so it raises an error when used incorrectly in debug mode. 2012-08-10 12:38:53 +00:00
7a760b4804 generate COM_OpenCLKernels.cl.h automatically at build time, this allows editing COM_OpenCLKernels.cl and rebuilding and means we dont have to have both files in svn.
updates made to cmake and scons.
2012-08-09 19:59:36 +00:00
Lukas Toenne
723e52fb85 Tile fix: Use the validity flag in node links directly instead of the indirect node level check for cyclic links to avoid crash in cases of invalid links, which can be created in some situations (reroute nodes). The link flag may have been set by additional constraints. It is much simpler to use and avoids the redundant check. 2012-08-06 19:11:59 +00:00
2b8ac9bc61 inpaint node from tomato branch by Peter Schlaile
http://en.wikipedia.org/wiki/Inpainting
2012-08-06 13:45:11 +00:00
854e122e5d style cleanup: compositor 2012-08-03 10:19:13 +00:00
52e31a4866 fix for bokeh blur using uninitialized memory - it would cause some tiles not to be blurred.
was in fact a bug in MemoryBuffer::getMaximumValue
2012-08-03 09:51:10 +00:00
8df10a4018 Defocus node.
added some maxblur optimizations. Per tile the max blur is calcualted,
will save some unneeded CPU/GPU loops
GPU: 1:09 => 0:21
CPU: 1:50 => 0:35
2012-07-25 10:46:19 +00:00
9b51503307 style cleanup 2012-07-21 22:58:08 +00:00
250cdd5e52 code cleanup: remove commented includes - mostly from 2.4x 2012-07-18 23:07:07 +00:00