Commit Graph

2863 Commits

Author SHA1 Message Date
9829ba31b9 Color Management: fixed color management-less texture rendering
There was a missing check for whether color management enabled or not when
converting byte textures to linear space.

This commit also fixes wrong texture preview rendering, which was applying
sRGB transform twice, making procedural textures bright. This will make
float textures being previewed dark (in a linear space) but that's how it
used to behave in pre-OCIO color management.
2012-10-10 05:56:49 +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
4a5f09fc65 Fix #32795: Memory leak when rendering to video file 2012-10-08 12:58:37 +00:00
ebb8d3996c code cleanup: replace VECADDISFAC with math function. 2012-10-08 00:51:55 +00:00
e8872a8ea2 style cleanup: if(); 2012-10-07 09:48:59 +00:00
1fe70c07a0 Merged changes in the trunk up to revision 51126.
Conflicts resolved:
source/blender/blenloader/intern/readfile.c
source/blender/windowmanager/WM_types.h
2012-10-06 23:32:21 +00:00
4cc29110aa fix writing past array bounds in imagewraposa().
also correct array sizes in othere areas.
2012-10-06 12:04:09 +00:00
fedc8e1722 Cycles: add "From Dupli" option for texture coordinate node. This gets the
Generated and UV coordinates from the duplicator of instance instead of the
object itself.

This was used in e.g. Big Buck Bunny for texturing instanced feathers with
a UV map on the bird. Many files changed, mainly to do some refactoring to
get rid of G.rendering global in duplilist code.
2012-10-04 21:40:39 +00:00
d8144ef0f5 style cleanup: comment blocks 2012-10-04 13:26:15 +00:00
1d7bf727ff Fix #32695: Can't disable color management for 3D view
Made it so viewport will disable color management if display device set to None.

This solves couple of regressions, mainly related on old BGE files and made
None display behave exactly as old color management disabled.
2012-10-01 11:14:02 +00:00
e91f33101f Merged changes in the trunk up to revision 50956.
Conflicts resolved:
source/blender/editors/interface/resources.c
2012-09-30 13:16:55 +00:00
ed1cda9a6c style cleanup 2012-09-30 06:12:47 +00:00
509e7c5cdf Fix #32670: lamps in lamp groups did not respect renderability option. 2012-09-27 15:30:13 +00:00
4e99ff0481 fix [#32672] Crash when rendering environment map
own regression since 2.63
2012-09-27 02:56:46 +00:00
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
a42ba82f63 Merged changes in the trunk up to revision 50829.
Conflicts resolved:
source/blender/blenloader/intern/readfile.c
source/blender/render/intern/source/convertblender.c
source/blender/render/intern/source/pipeline.c

Also addressed code inconsistency due to changes in the trunk revision 50628 (color
management with OCIO) and 50806 (UV project material).  OCIO-related changes are marked
OCIO_TODO as in some other files modified in revision 50628.
2012-09-23 18:50:56 +00:00
b1ef5703d6 add a UV Project material option so UV's are calculated taking into account perspective matrix - previously this gave artifacts with lower poly meshes. 2012-09-22 04:57:55 +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
1f8f7310e9 calculate sticky wasnt working very well and had a few glites -
updating data was only being done on the active object but sticly was being calculated for the selection.

split this into 2 operators, one that works on the selection and another that operates on the active object - so we can have a button in the mesh panels that calculates sticky.

also note that there was no way to calculate sticky from the UI - perhaps this feature should die a quiet death?

anyway - it works better then it used to for now.
2012-09-21 06:37:42 +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
6cd32435a2 Fix #32598: clamp blender internal alpha channel to 0..1, and RGB to 0..inf,
to avoid compositing issues. The values can go out of bounds due to sharp
pixel filters.

In Cycles the alpha channel is already clamped, and there are no pixel filters
that could cause negative RGB values.
2012-09-20 00:39:27 +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
c50c654543 Fixed missing display buffer invalidation when rendering sequencer animation 2012-09-18 08:40:53 +00:00
a4ff2b9140 code cleanup: warnings 2012-09-18 03:15:12 +00:00
0d33a1c090 Fixed crash in cases sequencer returns NULL image buffer
Happens when there's no strip under current frame. Simply added NULL-check.
2012-09-17 07:09:11 +00:00
d724d0adfe code cleanup: quiet warnings for gcc's -Wundef, -Wmissing-declarations 2012-09-16 00:26:36 +00:00
232571c61a code cleanup: replace macro for BLI_rect size/center with inline functions. 2012-09-15 11:48:20 +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
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
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
7a71f58af3 fixes for NULL checks, remove some redundant checks and add some in that have been removed by accident as code has been updated. 2012-09-14 06:17:14 +00:00
380a6174d9 fix [#32537] Inconsistent behaviour of Texture Baker
feedback looks wen't being detected in some cases causing very confusing behavior.
2012-09-12 03:05:20 +00:00
d75a66674d code cleanup: remove deprecated defines and some struct members 2012-09-06 00:33:59 +00:00
a4b71f4e01 fix for various redundant checks and possibly fix some crashes in rare situations. 2012-09-05 01:42:52 +00:00
068cceab6c fix for some errors reported by http://clang.blenderheads.org/trunk/ in r50384.
- when renderlayers could not be found in save_render_result_tile() blender would crash.
- RE_engine_end_result() / rna end_result() didn't set result argument as required.
... also some style cleanup.
2012-09-04 18:27:47 +00:00
adea12cb01 Cycles: merge of changes from tomato branch.
Regular rendering now works tiled, and supports save buffers to save memory
during render and cache render results.

Brick texture node by Thomas.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture

Image texture Blended Box Mapping.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture
http://mango.blender.org/production/blended_box/

Various bug fixes by Sergey and Campbell.
* Fix for reading freed memory in some node setups.
* Fix incorrect memory read when synchronizing mesh motion.
* Fix crash appearing when direct light usage is different on different layers.
* Fix for vector pass gives wrong result in some circumstances.
* Fix for wrong resolution used for rendering Render Layer node.
* Option to cancel rendering when doing initial synchronization.
* No more texture limit when using CPU render.
* Many fixes for new tiled rendering.
2012-09-04 13:29:07 +00:00
a71b160184 fix for building on msvc2008 (also style cleanup) 2012-09-04 01:23:50 +00:00
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
141dd5233e Merged changes in the trunk up to revision 50257.
Conflicts resolved:
source/blender/blenkernel/CMakeLists.txt
2012-08-29 00:53:29 +00:00
ee96cde864 style cleanup: whitespace 2012-08-26 11:35:43 +00:00
56b28635e7 code cleanup: rename BLI_in_rctf() --> BLI_rctf_isect_pt(), to conform with our naming convention. 2012-08-23 18:25:45 +00:00
9ecc6fdcc7 style cleanup 2012-08-23 07:10:48 +00:00
c92ab5c3ef code cleanup: use rect size macros 2012-08-21 20:34:05 +00:00
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
26f073b327 macros for rectangle center and size 2012-08-20 15:29:02 +00:00
22b30da565 Merged changes in the trunk up to revision 49986. 2012-08-18 15:20:35 +00:00
e9caa21830 fix own error in recent smoothview cleanup, also correct some cross references in bmesh docs. 2012-08-17 14:43:20 +00:00