Commit Graph

137 Commits

Author SHA1 Message Date
Brecht Van Lommel
df56d40339 OpenMP multithreading for the defocus node. Reason: defocus can take 16x
longer on a 4k render than on a 2k render (due to O(n^2) scaling).
2010-06-30 15:15:31 +00:00
Matt Ebb
ceac8d0fed Change to file output compositor node -
Now it only outputs files when rendering, otherwise, it overwrites the output files
whenever the compositor updates (i.e. just scrubbing through the timeline )
2010-06-23 03:42:19 +00:00
Matt Ebb
440917cb0b Fix [#22418] Displace Node also makes entire image fuzzy
Changed displace node sampling to use EWA filtering, and removed old hacks 
for calculating derivatives - I think it should be generated correctly now.
2010-05-26 08:06:51 +00:00
Matt Ebb
e50f798647 Fix for hue correct node, was clamping value of hsv unnecessarily. 2010-04-13 08:30:53 +00:00
Matt Ebb
b3e87146b6 Fix [#21826] Memory Map growing in size on each render
Image node wasn't properly getting marked to free compbuf data when using premul.
2010-03-31 07:00:59 +00:00
Matt Ebb
89cd90379f Fix:
[#21841] SplitViewer doesn't backdrop in Node Editor
[#21803] Cant See Split Viewer on UV editor
2010-03-31 02:21:32 +00:00
Matt Ebb
05c2906b76 Patch from Xavier Thomas:
YCbCr conversion function according to ITU-R BT.601/709 and JFIF

Clarifies color space usage in rgb->ycc conversion, doesn't change existing results.
2010-03-30 23:32:16 +00:00
Brecht Van Lommel
57101c4fd2 Second attempt at committing the different render slot implementation. This
has a fix that hopefully solves the problem on mac/win. Also fixes #21322,
render slots not working well with FSA.
2010-03-27 15:35:34 +00:00
Matt Ebb
78e282fdf1 Patch from Francois Tarlier: extend colour balance node 'lift' value to 0.0-2.0 range
(default 1.0), like the other controls. Thanks!
2010-03-25 00:10:41 +00:00
Campbell Barton
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
Brecht Van Lommel
f17dcf58c8 Fixes for thread related render / compositing crashes:
* Viewer node could free image while it is being redrawn, viewer image
  buffers now need acquire/release to be accessed as was already the
  case for render results.
* The Composite node could free the image buffers outside of a lock,
  also causing simultaneous redraw to crash.
* Especially on Windows, re-rendering could crash when drawing an image
  that was freed. When RE_RenderInProgress was true it would access the
  image buffer and simply return it while it could still contain a pointer
  to a render result buffer that was already freed. I don't understand
  why this case was there in the first place, so I've removed it.

Possibly fixes bugs #20174, #21418, #21391, #21394.
2010-03-16 16:58:45 +00:00
Robert Holcomb
ebd63787e6 added different sampling methods in rotate node
fixed bug in difference matte node that prevented using a solid color for second input
	-also clairified some variable names to be more meaningful
2010-03-15 22:36:39 +00:00
Brecht Van Lommel
14c2fc3c12 Various warning fixes. 2010-03-14 21:25:01 +00:00
Robert Holcomb
dfb59dbaa5 added method to change algorithm used in channel matte node. Limit a channel by another channel or limit by max of remaining channels. 2010-03-13 14:47:26 +00:00
Robert Holcomb
85066b5e05 updated despill node to incorperate changes from Xavier Thomas's patch #18012 2010-03-12 18:47:35 +00:00
Brecht Van Lommel
353a078d4c Fix #21211: new indirect/environment/emit passes weren't showing up
in compositor and outliner yet.
2010-03-12 12:29:12 +00:00
Matt Ebb
69a7060678 Restored Environment maps
* Fixed up RNA and UI
* Brought back 'Save' and 'Clear' operators (in the little triangle menu in 
environment map properties)
* While I was at it, noticed that environment maps were only using 8bit 
colour, changed it to use full 32bit float instead for proper HDR colour etc,
so environment map reflections have the correct colour range
--> http://mke3.net/blender/devel/2.5/env_hdr.jpg

This fixes [#20904] Environment Map does not render; also missing panel
2010-03-11 07:43:49 +00:00
Matt Ebb
ec303cf980 Fix [#21188] HueCorrection Node, when reseting Curve, it goes to a incline instead of flat/straight 2010-03-09 07:41:27 +00:00
Matt Ebb
ca43a2a87f Fix [#21022] Compositors File Output node doesn't use Colour Managment 2010-03-09 01:25:15 +00:00
Brecht Van Lommel
ad01c90ee3 Revert render slots commit for release, I can't find the bug or even redo
it myself, there will still be render slots just old implementation.
2010-02-16 19:24:04 +00:00
Brecht Van Lommel
2061f91741 Render Slots: change the implementation by moving it from the render to the
image code, this should be clearer and makes reusing the Render struct later
on easier.
2010-02-16 15:49:22 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Brecht Van Lommel
10240261e9 J-key render switching back, now with 10 slots.
Implementation note: this was done by giving each Render a slot number,
and for every slot a new Render will be created. Not sure if this is
ideal, but it ensures that all passes, render info, etc are separate so
you can also compare render layers and passes, in 2.4x only whatever it
was currently displaying was backed up.
2010-02-09 19:37:37 +00:00
Matt Ebb
0bb36e9ced Fixes to Color Balance node:
* The Lift/Gamma/Gain formula previously was incorrect, fixed this and 
removed conversions - now the RNA values are the same as what goes into 
the formula.
* Because of this, added the ability for the Value slider to map to a wider range 
than 0.0-1.0. The black/white gradient remains the same, in this case just 
indicating darker/brighter rather than absolute colour values. Also added ability 
for color wheels to be locked at full brightness (useful for this case, where the 
color value itself is dark).
* Added an alternate formula - offset/power/slope (asc-cdl). This fits the standard 
Color Decision List formula, here for compatibility with other systems, though 
default Lift/Gamma/Gain is easier to use and gives nicer results.
2010-01-27 00:22:29 +00:00
Matt Ebb
3e95d9cf65 Added Hue and Value modes to Hue Correct node, alongside existing
Saturation. Works the same way, selectively hue shifting or darkening/
brightening pixels based on their original hue.

Example:
http://mke3.net/blender/devel/2.5/hue_correct_hue_val.jpg
2010-01-21 22:23:57 +00:00
Guillermo S. Romero
469a8d4537 SVN maintenance. 2010-01-21 00:25:01 +00:00
Matt Ebb
3e1783c715 New Compositor node: Hue Control
Was very quick to do, now re-aquainted with node editor.

http://mke3.net/blender/devel/2.5/hue_correct_node.jpg

Todo: modes for affecting hue and value on the vertical axis as well as just saturation - or if an enterprising coder wants to give it a go, let me know and 
I can help :)
2010-01-21 00:00:45 +00:00
Matt Ebb
8830528b02 Forgot to add the new file 2010-01-20 04:29:00 +00:00
Campbell Barton
abb5214a8f removed 3D view listener for changing the background image frame.
do this on drawing instead since SCREEN_OT_animation_step isnt calling the notifier (assume this is to be more efficient?). this isnt slow so is ok to do on drawing.

rename BKE_image_user_calc_imanr to BKE_image_user_calc_frame
2010-01-19 14:04:33 +00:00
Matt Ebb
fd5657bd4f Fix [#20000] Connect to File Output node creates segfault 2010-01-12 02:53:15 +00:00
Matt Ebb
04dec46c6a Color management fixes
Now it's a bit more robust, tagging images with profiles when they're loaded, 
which then get interpreted later on by conversion functions. Just Linear RGB 
and sRGB profiles at the moment, same as before.

This commit fixes Martin's problem with EXRs and Multilayer images loading/
saving too dark, and it also makes the sequence editor work correctly with it too.

Also fixes:
[#19647] gamma correction with color management is reset when resetting Curve
[#19454] 2.5: Dither does not work when Color management is enabled
2010-01-09 00:16:35 +00:00
Campbell Barton
a868e8623c - RNA support for returning copied strings from functions, flagging strings as PROP_THICK_WRAP does this.
- scene.render_data.frame_path(frame=num), returns the output path for rending images of video.
- scene.render_data.file_extension, readonly attribute, gives the extension ".jpg", ".mov" etc
- player support was guessing names, use the above functions to get the actual names used, accounting for #'s replacing numbers.
2010-01-08 13:52:38 +00:00
Matt Ebb
320a09c232 * Use color wheel template for RGB node 2010-01-07 22:42:59 +00:00
Brecht Van Lommel
9e7bb2de8f Fix bug #20299: bilateral blur node crashes when the number of
iterations is rapidly changed.
2009-12-09 17:18:39 +00:00
Joshua Leung
1d84b6bb3c Nodes Editor + other warning fixes:
* Added 'active node' panel for the Nodes Editor. This panel, in the NKEY region, shows the settings for the active node. Included in this panel is a field used for editing the unique-name of the node too. 

* Fixed a number of uninitialised vars warnings that I missed in previous commit...
2009-11-11 10:51:40 +00:00
Matt Ebb
bc006655ba * Finished (well, almost ;) RNA wrapping and layout-engine-ing all the nodes.
Still a few quirks, including redraw issues on multilayer image input nodes, but it's pretty much there.
Would also be good to wrap the input/output sockets, too, will check on it.

This fixes bug [#19740] INPUT NODE: Cannot load images / motion pictures
2009-11-10 04:01:44 +00:00
Matt Ebb
908061378c * fix for colour management, compositor image node wasn't working correctly. There are a few other issues around here I need to get to eventually as well.. 2009-10-21 00:33:08 +00:00
Brecht Van Lommel
54abd775d3 Fix #19604: defocus node was not using camera object yet. Could use
a proper fix, but for now this makes things work again.
2009-10-19 14:32:32 +00:00
Brecht Van Lommel
fd511eb984 Node Bugfixes:
* Compo node backdrop works again.
* Compo node previews and backdrop now get correct color management
  float to byte conversion.
* Compo nodes got unecessarily recalculated while moving nodes.
* Fix compo node viewer nodes not getting activated correctly.
* Main compo node preview render computations are now outside of
  mutex lock, so better for multithreading.
* Tex node outputs did not work in some files loaded from 2.4.
* Change RNA updates to take into account groups that may be shared
  between multiple node trees.
2009-10-07 22:05:30 +00:00
Brecht Van Lommel
b466286c3e Render & Compositing Thread Fixes
* Rendering twice or more could crash layer/pass buttons.
* Compositing would crash while drawing the image.
* Rendering animations could also crash drawing the image.
* Compositing could crash 
* Starting to rendering while preview render / compo was
  still running could crash.
* Exiting while rendering an animation would not abort the
  renderer properly, making Blender seemingly freeze.
* Fixes theoretically possible issue with setting malloc
  lock with nested threads.
* Drawing previews inside nodes could crash when those nodes
  were being rendered at the same time.

There's more crashes, manipulating the scene data or undo can
still crash, this commit only focuses on making sure the image
buffer and render result access is thread safe.


Implementation:
* Rather than assuming the render result does not get freed
  during render, which seems to be quite difficult to do given
  that e.g. the compositor is allowed to change the size of
  the buffer or output different passes, the render result is
  now protected with a read/write mutex.
* The read/write mutex allows multiple readers (and pixel
  writers) at the same time, but only allows one writer to
  manipulate the data structure.
* Added BKE_image_acquire_ibuf/BKE_image_release_ibuf to access
  images being rendered, cases where this is not needed (most
  code) can still use BKE_image_get_ibuf.
* The job manager now allows only one rendering job at the same
  time, rather than the G.rendering check which was not reliable.
2009-09-30 18:18:32 +00:00
Brecht Van Lommel
9fea9d065d 2.5: fix bug in Levels node, giving NULL pointer free warnings. 2009-09-16 14:45:10 +00:00
Guillermo S. Romero
e19537efcc SVN maintenance. 2009-09-10 20:31:15 +00:00
Robert Holcomb
fa4ee2be84 Added Levels Node (histogram, with mean/std deviation outputs)
Added RGB space distance matte Node
Added HSV color matte Node

Fixed Image difference matte Node to use image differences instead of RGB space distance
Fixed luminance node for low end values being read wrong
Fixed CMP_util copy/swap functions not accounting for all channels
Fixed UI for difference matte Node 

Added RNA for new nodes
2009-09-10 04:12:22 +00:00
Campbell Barton
0b3fd395ef svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22075:22099 2009-07-31 23:42:22 +00:00
Robert Holcomb
a0c22badc1 Bug fix in low value setting. Originally checked against the wrong channel (chroma) instead of the luminence channel.
Changed default value for high value to 1.0 from 0.0.
2009-07-31 12:51:18 +00:00
Campbell Barton
1b14243405 svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r20937:21899
missing commits from peter 20942, 21165, 21170, 21174, 21597
these files still need manual merging

source/blender/makesdna/DNA_sequence_types.h
source/blender/src/sequence.c
source/blender/src/seqeffects.c
source/blender/src/editseq.c
source/blender/include/BSE_sequence.h
2009-07-25 20:59:09 +00:00
Brecht Van Lommel
6b8dae0874 RNA
* ID blocks can now get RNA properties defined from python, e.g.:
  bpy.types.Scene.BoolProperty(..)
* RNA structs/functions/properties can now get pointers duplicated
  (mostly strings), since we can't point to some static string then.
* Added ExtensionRNA struct to add into *Type structs for subclassing,
  is a bit more compact than defining the 4 variables each time.
  Only disadvantage is it requires including RNA in more places.
2009-07-21 20:05:16 +00:00
Matt Ebb
1ef7293585 Colour Management
- 1st stage: Linear Workflow

This implements automatic linear workflow in Blender's renderer. With the 
new Colour Management option on in the Render buttons, all inputs to the 
renderer and compositor are converted to linear colour space before 
rendering, and gamma corrected afterwards. In essence, this makes all 
manual gamma correction with nodes, etc unnecessary, since it's done 
automatically through the pipeline.

It's all explained much better in the notes/doc here, so please have a look:
http://wiki.blender.org/index.php/Dev:Source/Blender/Architecture/Colour_Management

And an example of the sort of difference it makes:
http://mke3.net/blender/devel/rendering/b25_colormanagement_test01.jpg

This also enables Colour Management in the default B.blend, and changes the 
default lamp falloff to inverse square, which is more correct, and much 
easier to use now it's all gamma corrected properly.

Next step is to look into profiles/soft proofing for the compositor.

Thanks to brecht for reviewing and fixing some oversights!
2009-07-17 02:43:15 +00:00
Ton Roosendaal
0a132c6166 Bufix #18942
Composite "Map UV" node was using false UVs (0,0) from neighbouring 
pixels when those pixels were not rendered (or have no UV).

This commit checks for each neighbour sample it takes if the UV was
correctly set. Solves bad errors on edges of UV maps. With FSA even
totally smooth. :)
2009-06-18 17:00:47 +00:00
Brecht Van Lommel
c8b4cf9206 2.50:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19820:HEAD

Notes:
* Game and sequencer RNA, and sequencer header are now out of date
  a bit after changes in trunk.
* I didn't know how to port these bugfixes, most likely they are
  not needed anymore.
  * Fix "duplicate strip" always increase the user count for ipo.
  * IPO pinning on sequencer strips was lost during Undo.
2009-06-08 20:08:19 +00:00