Commit Graph

2561 Commits

Author SHA1 Message Date
Sergey Sharybin
dd65a6b67d Color Management: pipeline cleanup
- Move color management settings to scene, so it's now clear for
  all areas (such as compositor, sequencer) which settings to
  use for display buffers

- Currently removed per-editor color management settings. It could
  be nice to have them, but they don't fit nicely into overall
  pipeline and could be added as a override settings for display
  only later.

- Make sequencer working in space defined by sequencer_workspace
  role in OCIO configuration file.
  If this role is not set, sequencer will fallback to legacy sRGB
  Gamma 2.2 space.

  Currently use vd16 color space for sequencer. Not sure what exactly
  this color space is, but it's pretty close to SPI Film view and
  it's still invertable.

- Sequencer will now output linear float buffers, not color managed
  float buffers.
  Before this sequencer used to output float buffers in sRGB space,
  which was sequencer's working space. Now it can not output buffers
  in this space since other areas are not aware of this space.
  This also makes it's consistent that all float buffers in Blender
  are in linear space.

- When saving render result into byte file format scene's display
  transform would be applied on this buffer.
  When saving files from image editor, there'll be a display
  transform settings which are default set to scene's settings but
  could also be overwritten.

Additional details are there (would be extended soon):

  http://wiki.blender.org/index.php/User:Nazg-gul/ColorManagement
2012-08-22 14:23:08 +00:00
Campbell Barton
c984a8fa56 svn merge ^/trunk/blender -r50107:50112 2012-08-22 12:04:27 +00:00
Campbell Barton
92a1572102 fix for rare crash in cycles BVH tree packing. 2012-08-22 11:18:37 +00:00
Sergey Sharybin
bd2cb7ae50 Merging r50049 through r50076 from trunk into soc-2011-tomato 2012-08-21 10:44:04 +00:00
Campbell Barton
9a776daca8 code cleanup: vfont's used confusing and over complicated method of storing memory for loaded fonts, not store as a temp var in the fonts. 2012-08-21 10:39:02 +00:00
Brecht Van Lommel
66f694fca3 Fix cycles issue with non-progressive integrator and AO, setting AO samples > 1
did not give properly normalized values.
2012-08-21 09:01:50 +00:00
Thomas Dinges
e410049a6a Cycles / Cmake:
* Removed last instance of "BLENDER_PLUGIN" define, removed in r39465 in the cycles branch.
2012-08-20 19:40:49 +00:00
Sergey Sharybin
21e403e546 Merging r49953 through r50015 into from trunk into soc-2011-tomato 2012-08-19 13:57:55 +00:00
Sergey Sharybin
c37a863ff4 Tomato Cycles: fix for reading freed memory
Incorrect read was happening after nodes which are not affect on output
were removed from the graph. Other nodes could have been connected to
this nodes which lead to accessing freed memory in some other places.

Solved by removing links from unused nodes before removing them from
the graph.
2012-08-19 12:07:28 +00:00
Sergey Sharybin
900d7d9e35 Tomato Cycles: fix crash appearing when direct light usage is different on different layers
Seems some variables used for light sampling should be reset when
integrator's use_direct_light flag is setting to false, otherwise
this values could be used from previously rendered layer resulting
in using freed memory of __light_distribution texture.
2012-08-18 15:46:32 +00:00
Campbell Barton
47e313ec0c cmake option to build without iksolver 2012-08-18 13:36:29 +00:00
Campbell Barton
9e742ffc2b style cleanup: also correct some doxy comments 2012-08-18 13:07:48 +00:00
Sergey Sharybin
bcbd8c00c7 Tomato Cycles: fix incorrect memory read when synchronizing mesh motion 2012-08-17 12:58:31 +00:00
Sergey Sharybin
63b5338dbd Fixed incorrect sample counter reported when rendering several render layers 2012-08-16 08:49:43 +00:00
Sergey Sharybin
5c29f5bfcf Tomato Cycles: revert some changes of r49835
Apparently for viewport rendering on GPU tile size of 1024 gives
much better performance than using single tile. Not sure why it
doesn't work for background rendering, need to be investigated
further.

Meanwhile use old debug value of 1024 for tile size.
2012-08-13 14:51:39 +00:00
Thomas Dinges
b37fae8611 Tomato Cycles:
*Typo fix.
2012-08-12 12:47:32 +00:00
Sergey Sharybin
711b97c2ac Tomato Cycles: use actual number of tiles for viewport rendering
Before this debug_tile_size was used as a size of tile, which
became hidden property since tile-based rendering implementation
and couldn't have been controlled.

This resolves the issue with single thread used for viewport
rendering in some cases. Also it makes possible to control tiles
for CUDA viewport rendering, which still behaves much faster when
using the single tile.

Also fixed issue with minimal tile size which was used to calculate
divider of final resolution to be used for initial rendering. Now
it's a Resolution Divider property in Performance tab. This option
could be used to tweak initial resolution of viewport for faster
navigation or faster refresh when changing some properties.
2012-08-12 11:58:34 +00:00
Sergey Sharybin
8aeba8ec8b Merging r49815 through r49833 from trunk into soc-2011-tomato 2012-08-12 10:07:55 +00:00
Campbell Barton
b96c622015 style cleanup 2012-08-11 22:12:32 +00:00
Campbell Barton
c567cf3fab code cleanup: WM naming conventions 2012-08-11 21:35:24 +00:00
Sergey Sharybin
00afee41c8 Merging r49775 through r49807 from trunk into soc-2011-tomato 2012-08-11 14:39:09 +00:00
Campbell Barton
51182bc78d add MEM_recallocN(), so bytes are ensured to be zero'd when growing. 2012-08-11 12:16:09 +00:00
Campbell Barton
bfbea03228 svn merge ^/trunk/blender -r49757:49763 2012-08-10 10:37:31 +00:00
Lukas Toenne
d33a0effba Fix for particle object rendering in Cycles. On object sync the object first has to determine if a particle update is needed (which depends on dupli objects and their meshes), before deciding to skip the actual syncing. 2012-08-10 10:15:45 +00:00
Daniel Genrich
a1dd6ea836 Smoke: High res on even resolution did not write to all cells (downsampling = n-1, upsampling = n).
Thanks goes to MiikaH.
2012-08-10 09:58:58 +00:00
Sergey Sharybin
6129a0f97c Merging r49738 through r49757 from trunk into soc-2011-tomato 2012-08-10 08:54:14 +00:00
Thomas Dinges
e7f12cec35 Cycles Test App:
* Fix for changes in the OpenImageIO API.
2012-08-09 23:00:57 +00:00
Sergey Sharybin
2e30bf28c1 Merging r49711 through r49737 from trunk into soc-2011-tomato 2012-08-09 17:03:33 +00:00
Campbell Barton
f0951f58ca code cleanup: rename G.afbreek --> is_break, G.rendering --> is_rendering 2012-08-08 18:37:06 +00:00
Sergey Sharybin
c905bc3b80 Merging r49667 through r49680 from trunk into soc-2011-tomato 2012-08-08 08:21:58 +00:00
Campbell Barton
3179ee8a86 patch [#32282] Fix segfault on exit in IM shutdown.
from Bill Currie (taniwha)
2012-08-08 07:31:19 +00:00
Thomas Dinges
c8934b44f9 Tomato Cycles:
* Improvement for reporting current sample.
Also show the current amount of rendered samples, when using the CPU, and 1x1 tiles.
2012-08-07 14:02:53 +00:00
Campbell Barton
9ad19c26ca svn merge ^/trunk/blender -r49644:49653 2012-08-07 13:38:35 +00:00
Sergey Sharybin
b364f6e692 Tomato Cycles: report currently rendering sample when using GPU
Currently it makes more sense to use single tile for GPU rendering
and in this case tile-based progress report doesn't work well.

Since threading happens within single tile, it's possible to
detect currently computing sample and report it to the interface,

This also allows to display smoother progress when using CPU
with small amount of tiles.
2012-08-07 13:27:19 +00:00
Jens Verwiebe
9ee3a8655f Fix for fix, now nested 2012-08-07 12:09:48 +00:00
Jens Verwiebe
d4029de0d6 Fix for endiantest, xcode condition interferred with other os 2012-08-07 12:03:43 +00:00
Jens Verwiebe
5bcdecd72b OSX: disable kernels in cycles gpu again, would only work in 10.8 afaik 2012-08-07 10:10:03 +00:00
Campbell Barton
8516821225 svn merge ^/trunk/blender -r49638:49644 2012-08-07 10:06:31 +00:00
Jens Verwiebe
b9c441536c OSX/cmake: Mountain-Lion (10.8 )adaptions, skip unsupported endianess etc., todo: deployment target management 2012-08-07 10:02:34 +00:00
Sergey Sharybin
0d8a245623 Code cleanup: remove unused sample counter from render session
It's not used since new tile-based rendering and it was confusing
to have it in both session and tile manager.

Should be no functional changes.
2012-08-07 09:54:55 +00:00
Sergey Sharybin
9460619199 Tomato Cycles: do not discard unfinished tiles on cancel
Do not discard (fill with black) tiles which are not fully rendered
(not all the samples are calculated for tile) when canceling render.

This could be helpful to tweak some settings when render glitch is
discovered. Also it could be used in such scenarios as setting
samples number to something really high and render still image
until result is reasonable, controlling this manually.

This could make cancel not so responsible on CPU, but it wouldn't
be less responsible than GPU, also could potentially give some
%% of speedup by avoiding checking cancel state after every pixel
sampled.
2012-08-07 09:22:26 +00:00
Campbell Barton
e2203d548e svn merge ^/trunk/blender -r49601:49620 2012-08-06 14:02:03 +00:00
Sergey Sharybin
c93be80be9 Tomato Cycles: report current scene and render layer being rendering
Helps figuring out what exactly takes time when rendering in render farm.
2012-08-06 10:10:35 +00:00
Campbell Barton
4e2fb45576 style cleanup 2012-08-06 10:03:17 +00:00
Sergey Sharybin
1ba78bca94 Tomato Cycles: fix regression since rev49535
Wrong sample number was reporting in viewport rendering.
2012-08-05 17:38:44 +00:00
Sergey Sharybin
7b644b8196 Tomato Cycles: fix for vector pass gives wrong result in some circumstances
Issue was caused by wrong camera motion stored in device in cases
when first render layer does not have vector pass enabled.

Solved by forcing device camera update in cases when scene's motion
changed since previous device camera update.
2012-08-05 17:24:10 +00:00
Sergey Sharybin
cae3dbd141 Merging r49534 through r49573 from trunk into soc-2011-tomato 2012-08-05 12:54:39 +00:00
Thomas Dinges
2390c95cf1 Code cleanup:
* Remove BSP_GhostTest, not used and working for ages, approved by Sergey.
2012-08-04 11:42:38 +00:00
Sergey Sharybin
e7f8b52aee Tomato Cycles: minor code cleanup
Move center tile acquiring code into own function. Should be
easier for time being when we'll want to support other tile
render orders.

Also now there should be a single bucket growing from center
when multi-GPU is used. Can't test this here tho.
2012-08-04 09:13:52 +00:00
Sergey Sharybin
b5e1419e5b Tomato Cycles: internal cleanup of tile-based integrator
This commit solves couple of issues appeared with new integrator:

- Render job progress bar is now shows progress based on number of
  rendered tiles. This is the same as Blender Internal does.

  This still requires some further thoughts because for GPU it's
  better to use single tile and in this case progress bar should
  be based on number of rendered samples.

- Removes "global" sample counter from progress descriptor. There's
  no more global-being sample which makes sense.

  This counter was replaced with tile counter.

- Use proper sample number when copying render buffer to blender.
  It used to be final sample number used which lead to tiles
  appearing from complete dark to normal brightness as they're
  being rendered. Now tile would be displayed with proper
  brightness starting from the very first sample.

  Use sample counter stored in render tile descriptor and pass
  it to update / write callbacks.

This was tested on CPU and GPU CUDA rendering.

Additional change:

  OpenCL rendering now should be cancellable before it finished
  rendering all the samples (the same change as for CPU/CUDA from
  a while ago).

This part of commit wasn't actually tested, would do it later.
2012-08-03 15:18:42 +00:00