Commit Graph

10681 Commits

Author SHA1 Message Date
a1e24889ba A bit alternative fix for bug mentioned in rev50826
We need to assign color space for generated images when it's empty.
Do this in add_ibuf_size function in cases image's color space is
empty.

So now color management is always called with correct color space.

P.S. At least it should. If there're more similar issues please
     let me know :)
2012-09-23 14:41:03 +00:00
3b487a6944 fix for all pose-group editing functions crashing when the context didnt have an area (in background mode),
fix pose-group-sort and pose-group-moving being disabled for pinned poses.

also fix for own missing NULL check for pose mask clear which would crash when run without an active object
2012-09-23 02:31:30 +00:00
f61ef65adb Color Management: different fixes for byte buffers
- Color space of byte buffer for generated images haven't been
  updated properly on change

- Byte buffers weren't handling data color spaces on display transform
  properly
2012-09-21 20:44:41 +00:00
3d1cdfbb38 remove sticky coords from blender and the internal render engine. 2012-09-21 11:37:51 +00:00
f9467d28b9 remove sticky coordinates from blender, this was missing from the UI since 2.49.
TODO - drop support from the renderer still.
2012-09-21 11:19:16 +00:00
d88d41b265 remove default name from CD_SKIN_NODE LayerTypeInfo so its treated as a singleton. theres no need to have multiple skin layers. 2012-09-21 06:14:22 +00:00
Dalai Felinto
184a232ccc 2.49 feature: Game Controller State name shows up when mouse over them (the name of a state is the name of the top controller of this state)
review and small tweaks by Campbell Barton
2012-09-21 04:09:09 +00:00
5327c2f486 fix [#32602] Bevel operator's transform input is inverted
inset was inverted also
2012-09-20 12:42:22 +00:00
ddcc3f612a Fix #32603: Multi-Layer EXR files can't be color managed
Issue was caused by completely different way how multi-layer EXRs are loading,
they're bypassing general image buffer loading functions.

Solved by running color space transformation on render result construction
from multi-layer EXR image.

Also fixed issue with wrong display buffer computing for buffers with less
than 4 channels. Issues were:

- Display buffer is always expected to be RGBA
- OpenColorIO can not apply color space transformations on non-{RGB, RGBA}
  pixels.
2012-09-20 10:07:49 +00:00
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
a09b5c1f20 Color Management: new generated images had empty color space by default
Now use default byte/float colorspace when creating new image.
2012-09-19 19:53:16 +00:00
d8ffe32074 Small fix for Follow Track constraint
Use object_get_derived_final() function instead of accessing to object's
derived final directly.

The same happens for shrinkwrap constraint and it should deal better in
cases when depth object is in edit mode. In other cases should be no
functional changes.
2012-09-19 17:19:30 +00:00
5a3e474cc6 Tracking: fixed crash when reference frame fails to be loaded 2012-09-19 12:43:32 +00:00
15ce5f95b3 joining mesh objects now keeps relative key setting of each keyblock. also joining absolute shapekeys now sorts by time. 2012-09-19 12:11:28 +00:00
0d5d2146eb code cleanup: make shape key api names consistent with our new convention. 2012-09-19 10:12:07 +00:00
f5d3e361ce fix for missing NULL check in init_render_texture() (possibly own fault), also remove some redundant code. 2012-09-19 08:09:22 +00:00
123a25c52b fix txt_redo_read_unicode() missing break - reading 4 byte unicode would fail, same fix was made for txt_undo_read_unicode() recently. 2012-09-19 08:07:23 +00:00
4759f70e33 Fix crash editing mask with no image in the image editor. 2012-09-18 19:20:21 +00:00
a53351d204 don't divide by zero in get_ss_weights() which would set values - only to be overwritten.
useful when using --debug-fpe since this isnt and exceptional case.
2012-09-18 12:53:41 +00:00
3069db2216 Revert part of rev50719, it's not actually needed and it always
invalidates render result display buffers.
2012-09-18 11:21:57 +00:00
3d9d7275b5 Color Management: fixed crash when changing display device in screenshot save operator
In fact, color management settings shouldn't be editing from this operator since
screenshot is using OpenGL which is in sRGB space, but fixed issues with Image
Format initialization and added NULL pointer checks.
2012-09-18 10:11:46 +00:00
c50c654543 Fixed missing display buffer invalidation when rendering sequencer animation 2012-09-18 08:40:53 +00:00
d3737de8c2 fix for a strange linking error where set_property() in source/blender/blenkernel/intern/property.c would get mixed up with an X11 function of the same name. it crashed blender loading on my system.
Give functions in property.c more unique names.
2012-09-18 04:35:30 +00:00
a4ff2b9140 code cleanup: warnings 2012-09-18 03:15:12 +00:00
7a06630411 fix for scene not copying image format color management for settings. 2012-09-18 03:14:31 +00:00
47677909c7 fix own error in r49994 2012-09-18 01:24:32 +00:00
aff591c6e1 code cleanup: typos and set exceptional cases of zero length normals as UNLIKELY(). 2012-09-17 22:22:06 +00:00
dd62f5b7b8 Remove obsolete code from BKE_tracking_marker_clamp 2012-09-17 07:12:02 +00:00
e5d0dcb8d8 Few cleanup in matrix mathutils (make mul_m3_m3m4 and mul_m4_m3m4 consistant with other similar funcs, mainly copy-safe [i.e. you can use the same matrix as operand and result, saves lines in some already over-complicated code!]). 2012-09-16 15:25:28 +00:00
b3d2ea28ce speedup for vertex parent lookups, were looping over array elements when it wasn't needed for lattice and curves, and in some cases meshes.
do dirrect array lookups instead where possible.
2012-09-16 08:25:31 +00:00
58d520324e Code cleanup - remove some obsolete code 2012-09-16 07:14:15 +00:00
2fb8292005 style cleanup 2012-09-16 04:58:18 +00:00
d724d0adfe code cleanup: quiet warnings for gcc's -Wundef, -Wmissing-declarations 2012-09-16 00:26:36 +00:00
518c80fc94 remove unused parts of raskter module. 2012-09-15 23:05:34 +00:00
232571c61a code cleanup: replace macro for BLI_rect size/center with inline functions. 2012-09-15 11:48:20 +00:00
219b748dfc fix for bug in txt_undo_read_uint32() reading 4byte unicode values. 2012-09-15 10:40:05 +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
0bf6007e3b Silence compiler's warnings. 2012-09-15 08:35:26 +00:00
cdb144ade9 Merging r50618 through r50624 from trunk into soc-2011-tomato 2012-09-15 07:53:34 +00:00
fed6b2bcb7 code cleanup: remove paranoid/invalid NULL checks and also reduce some unneeded size_t -> int conversions. 2012-09-15 07:31:17 +00:00
19863a7268 fix for 3 obvious mistakes/bugs. 2012-09-15 06:30:40 +00:00
beba8014e4 Merging r50602 through r50617 form trunk into soc-2011-tomato 2012-09-15 06:24:48 +00:00
d98dd2585f code cleanup: replace memcpy for copy_v3_v3(), and fix for unlikely crash - if (ob->mat == NULL && ob->totcol) 2012-09-15 06:03:49 +00:00
c73cd2fb6a Silent compiler's warnings about tracking module 2012-09-15 05:01:52 +00:00
e75f5c8208 quiet -Wmissing-prototypes warnings, and enable this warning by default for C with gcc.
helps for finding unused functions and making functions static, also did some minor code cleanup.
2012-09-15 01:52:28 +00:00
4172997675 Merged changes in the trunk up to revision 50607.
Conflicts resolved:
source/blender/blenloader/intern/readfile.c
2012-09-15 00:15:24 +00:00
be5a35d916 Color Management: get rid of image buffer's profile flag
Currently float buffers are always linear, space of byte buffer is defined by
rect_colorspace property.

Replaced logic of IMB_rect_from_float and IMB_float_from_rect to use this
assumptions (before it was special function used in some areas only, now it's
default behavior).

Almost all functions from ImBuf module which are actually used are got rid from
profile flag. Only remained issue is IMB_float_profile_ensure which only used by
CIneon/DPX exporter which is broken for a while already. Need to be fixed
separately.

This also fixed clone brush when cloning byte image on top of float, before
this result would be gamma-corrected twice.
2012-09-14 14:37:19 +00:00
d7f55cff20 Color Management: image buffer loading reworked
Before this color space settings in image/movie clip data blocks
defined space in which loaded image buffer is, based on whether
this buffer contains float or byte buffer. This didn't work well
for formats like 16bit PNG, which are in fact non-linear formats
but were represented in Blender as float buffers.

Now image buffer loader is responsible to set up input default
color space for image/movie clip data blocks, which could be
based on format itself only or on particular file properties.

This means image/movie clip data blocks' input colorspace will
be initialized at time first image buffer is loaded.

This also resolves old confusing thing with image buffer's profile
flag, which in could have been non-linear for image buffer which
contained float buffer only -- this happened in mentioned case of
16 bit PNG format, i.e. Now float buffer would always be linear
which should make it easier to get rid of image buffer's profile.
2012-09-14 14:36:47 +00:00
cd4ffe496a Sequencer: clear cache and animation buffers for strips outside of cursor when rendering
This avoids having bunch of cached images when doing animation rendering,
keeping all the memory available for rendered itself.

This keeps memory usage low when rendering huge edits with mixed
scenes and movie strips.

This should not affect on sped of video encoding, which was confirmed by
some own tests.

--
svn merge -r50051:50052 ^/branches/soc-2011-tomato
2012-09-14 14:28:24 +00:00
58da4a1760 Merging r50576 through r50587 from trunk into soc-2011-tomato 2012-09-14 14:05:05 +00:00