Commit Graph

681 Commits

Author SHA1 Message Date
Sergey Sharybin
0c6c907cf7 Tag unused variables 2012-07-30 08:08:04 +00:00
Campbell Barton
a14fc54702 svn merge ^/trunk/blender -r49333:49361 2012-07-29 18:48:34 +00:00
Campbell Barton
7217927414 add inline functions for max/min ints, good to use when the arguments are function calls (we had a few of these). 2012-07-29 18:14:20 +00:00
Campbell Barton
c41e1e434a code cleanup: replace MIN2/MAX2 with minf/maxf 2012-07-29 16:59:51 +00:00
Peter Schlaile
b6288e94eb == compositor ==
This adds an inpaint node to blender.

In case, you don't know, inpainting does this:
http://en.wikipedia.org/wiki/Inpainting

It's use cases in blender are 

* wire removal
* green screen background reconstruction

The node isn't tile based (for fundamental reasons), but very fast,
since it first builds a manhatten distance map and after that performs
color convolution only on the edges.

That's something, one should probably add also to the dilate node (in
step mode) to make it perform a lot better for dilate iterations greater
than 3.

It will bring it's computing time from O(n^3) down to O(n^2).
Take a look here for the details: 
http://ostermiller.org/dilate_and_erode.html )
2012-07-29 15:48:38 +00:00
Campbell Barton
b8d96bc011 mask motion blur shutter option 2012-07-27 10:20:36 +00:00
Lukas Toenne
fec872ef9c Added a particle index output to the Particle Info Cycles node. This is required to get consistent ID numbers for particles. The Object ID is not usable since it's a user defined value of the instanced object, which does not vary per instance. Also the random value from the object info node is not consistent over time, since it only depends on the index in the dupli list (so each emitted or dying particle shifts the value).
The particle index is always the same for a specific particle. Randomized values can be generated from this with the use of a noise texture.
2012-07-26 11:40:58 +00:00
Lukas Toenne
237b8e496a Fix #32178, Adding "File Output" node crashes when a video output type is selected.
The image format for the node and sockets were not properly initialized. The file output node only supports image types (not movies), so it needs to check for proper format type after copying from the render settings.
2012-07-25 10:25:53 +00:00
Campbell Barton
62a73381a7 use fabsf when using floats. 2012-07-21 15:27:40 +00:00
Campbell Barton
32cf7fcdb1 code cleanup: spelling 2012-07-16 23:23:33 +00:00
Campbell Barton
4cacff2342 fix for linking with scons. 2012-07-16 08:42:55 +00:00
Sergey Sharybin
807ad1f0e0 Fix #32087: Crash while changing values in comp editor (bt and blender included)
Issue was caused by threading conflict between compositor output node which
is freeing buffers used by render result image and image draw code which
could use buffers at the same time as compositor frees this buffers.

Solved by adding adding  lock around viewer image invalidation and image
drawing.

Use renamed LOCK_PREVIEW mutex for this, which si not called LOCK_DRAW_IMAGE.
With new compositor locking for preview is not needed so it could be removed.

Added the same lock around viewer operation which also frees buffers used
by viewer image. It's actually quite difficult to check whether this is
indeed needed. This code seems to be using acquire/release technique, but
somehow acquiring ImBuf before invalidating it in compositor operation
doesn't resolve the issue, so probably it's not actually locking acquire
and things should be checked deeper.
2012-07-13 13:47:13 +00:00
Sergey Sharybin
ba8154e24a Keying screen: small fixes and improvements from tomato
- Fixed issues with calculating matte with balance != 0.5
  It used to be used concave combination of minimal and maximal
  channel values which could be inpredictable.
  Use concave combination of two non-major channels sorted
  by their index, so such combination would always use the same
  coefficients for particular non-major channels.

- Added despill balance slider which defines balance between
  non-major channels used for calculating average of two
  colors. Difference between average value and pixel value of
  major screen channel defines amount of despill. Balance of
  0.5 gives the same behavior as it was before this slider
  was added.

---
svn merge -r48678:48679 -r48789:48790 ^/branches/soc-2011-tomato
2012-07-10 14:53:36 +00:00
Jeroen Bakker
dc65a26bf6 refactor node highlight code. New implementation will not write to
uninitialized memory. it happened when you delete a node that was being
executed. in the compostor
2012-07-10 12:23:49 +00:00
Sergey Sharybin
5cc0e5f751 Mango request: added an input node to use track's position in compositor
--
svn merge -r48088:48089 -r48091:48092 ^/branches/soc-2011-tomato
2012-07-10 11:01:25 +00:00
Campbell Barton
9f22750422 style cleanup 2012-07-04 20:47:12 +00:00
Bastien Montagne
558721ab59 More spell checking. 2012-07-04 15:04:38 +00:00
Jeroen Bakker
7cde835c2e relay the original node to a different place holder to resolve some
crashes.
2012-07-04 12:30:17 +00:00
Jeroen Bakker
33e12a2983 Highlight nodes that are being processed 2012-07-04 10:01:45 +00:00
Bastien Montagne
468ef74ed7 More spell and typo fixes (mostly visualise->visualize, grey->gray, normalise->normalize). 2012-07-03 19:09:07 +00:00
Campbell Barton
8b865c01cd style cleanup: comments 2012-06-30 22:49:33 +00:00
Thomas Dinges
273f56ace0 Scons:
* WITH_BF_COMPOSITOR option, to disable tile compositor compilation.
* Removed unused SCons file.
2012-06-30 22:44:36 +00:00
Campbell Barton
90dc1d1353 the compositor optional for cmake: WITH_COMPOSITOR 2012-06-30 14:14:22 +00:00
Campbell Barton
226c86ae58 use an inline function for rgb -> bw conversion. 2012-06-22 07:49:44 +00:00
Jeroen Bakker
7a8d60ec7d * make it possible to composite without an compositor node [#31878]
Tiles Compositor: Fails without 'Compositor' output node. Regression.
2012-06-21 17:58:12 +00:00
Campbell Barton
a803ce42df negate previous commit flag, this way existing files dont loose their feather. 2012-06-21 12:45:53 +00:00
Campbell Barton
54156e2b82 option to disable feather, since its so slow - for interactively editing masks its useful to be able to disable.
also rename RNA to 'use_antialiasing'
2012-06-21 12:27:57 +00:00
Campbell Barton
fae0b2068b falloff options for dilate/erode feather compo node. 2012-06-21 07:45:41 +00:00
Campbell Barton
586f202eac minor speedup for the glare compositor node
- pre calculate the UV dot product
- use image width and height converted to floats in the inner loop.
2012-06-20 08:11:59 +00:00
Sergey Sharybin
72e170d67a Implementation of node for track position input 2012-06-19 17:29:58 +00:00
Campbell Barton
f5f25b81e8 style cleanup:
also fix for building ghost test and fix double free in one of the tests
2012-06-17 09:58:26 +00:00
Campbell Barton
2f29f8d186 speedup for fast gauss blue (approx 10% - 15%)
- get the image width and height once rather then calculating on every access (was doing min/max subtract).
- use unsigned int's - faster for looping.
2012-06-16 09:52:38 +00:00
Campbell Barton
927fc897cf minor optimizations for dilate 2012-06-15 15:55:37 +00:00
Campbell Barton
2ca89f7add style cleanup 2012-06-15 15:04:56 +00:00
Campbell Barton
f04546018f style cleanup 2012-06-15 14:45:49 +00:00
Sergey Sharybin
82473f67b3 Core matte input for keying node
This matte could be used to force alpha be at high values in areas where
algorithm detects it as edge or background color.
2012-06-15 11:53:51 +00:00
Sergey Sharybin
8da0a03774 2D stabilization didn't work since clip start frame commit 2012-06-15 11:15:48 +00:00
Sergey Sharybin
f0c724219d Internal refactoring of tracking module, should be no functional changes
- Re-arrange functions in headers and implementation file to make them
  more grouped by entity they're operating with. Also order of functions
  in implementation file should match order of functions in header for
  easier navigation.

- Rename some functions to match conventions of naming public functions.
- Some code de-duplication, still some room for improvements tho.
- Split main 2D tracking functions into smaller steps to make it more clear.

Accidentally OpenMP was disabled in some of previous commits, re-enable it.
2012-06-15 11:03:23 +00:00
Campbell Barton
ec755bdfa7 style cleanup: composite/blur 2012-06-15 09:58:52 +00:00
Sergey Sharybin
c9f1477fb0 Garbage mate input for keying node
This adds garbage matte input to new keying node which is used to
force occluding things which can not be eliminated by color operations.

White areas defines areas which should be removed from final result.
2012-06-15 08:26:49 +00:00
Campbell Barton
9c55e7b995 add node scale offset for old compositor too - also fix for error in last commit. 2012-06-15 08:01:41 +00:00
Campbell Barton
813348a4ee code cleanup: replace most fRGB functions with inline vector functions 2012-06-14 19:22:55 +00:00
Campbell Barton
c42d4b101b remove unused fRGB defines and change float member to bool. 2012-06-14 19:09:00 +00:00
Campbell Barton
ffc9e340b1 new scaling options to scale footage without stretching - add stretch/fit/crop to compositor scale node, default behavior isnt changed.
this is only added for the old compositor, will add to the new compositor next.
2012-06-14 16:55:55 +00:00
Campbell Barton
550824968c style cleanup 2012-06-14 16:15:37 +00:00
Campbell Barton
1a39e74131 revert own commits 47907, 47908 after some discussion this is really bad and needs some different solution. 2012-06-14 16:13:09 +00:00
Campbell Barton
0b2fcf4368 change to scale node - multiply scale by scene size, without this theres no reliable way to match different scaled footage to an output and still have useful preview's at <100 percentage. 2012-06-14 15:04:40 +00:00
Sergey Sharybin
1f19bacf8e Kaying node from tomato branch
Merge keying node from tomato branch into trunk.

It was considered stable and helpful by Mango team and it'll help
studio pipeline, because nodes would stop disappearing when opening
files in current trunk.

Full information about keying nodes could be found there:
http://wiki.blender.org/index.php/User:Nazg-gul/Keying
2012-06-14 12:19:13 +00:00
Sergey Sharybin
d56e77ada5 Keying Screen node from tomato branch
Merge Keying Screen node developed in tomato branch into trunk.

This node is aimed to make dealing with non-even greenscreens better
by generating gradiented image which could be used a input for keyer
nodes.

Based on building voronoi diagram using motion tracking markers as
sites position and average pattern color as color for that site.

Pretty straignforward node, some documentation is there
http://wiki.blender.org/index.php/User:Nazg-gul/Keying#Screen_color
2012-06-14 12:18:42 +00:00
Peter Larabell
ceffc2cd50 add Anti-Aliasing (very rough draft algorithm, NOT FINAL version) to raskter lib. Code is still quite messy but will be replaced when final algo comes in anyway. 2012-06-13 19:57:23 +00:00