Commit Graph

18 Commits

Author SHA1 Message Date
e12c08e8d1 ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.

For details on usage and instructions for migrating branches
without conflicts, see:

https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17 06:21:24 +02:00
3316853323 Cleanup: conform headers to have license first
Also remove doxy comments for licenses and add missing GPL header.
2019-02-18 08:22:11 +11:00
65ec7ec524 Cleanup: remove redundant, invalid info from headers
BF-admins agree to remove header information that isn't useful,
to reduce noise.

- BEGIN/END license blocks

  Developers should add non license comments as separate comment blocks.
  No need for separator text.

- Contributors

  This is often invalid, outdated or misleading
  especially when splitting files.

  It's more useful to git-blame to find out who has developed the code.

See P901 for script to perform these edits.
2019-02-02 01:36:28 +11:00
d7f55c4ff5 Cleanup: comment block tabs 2018-11-14 17:10:56 +11:00
f86c965d7f Cleanup: use conforming header guard 2018-08-08 11:49:51 +10:00
c566e408e4 Cleanup: Renamed compositor executePixel functions and their 'read' wrappers in SocketReader.
Distinguish the 3 different methods for acquiring pixel color values (executePixel, executePixelSampled, executePixelFiltered).
This makes it easier to keep track of the different sampling methods (and works nicer with IDEs that do code parsing).

Differential Revision: http://developer.blender.org/D7
2013-11-19 11:06:16 +01:00
94a3945cf9 code cleanup: compositor - define size for executePixel function output float array 2012-08-10 14:07:24 +00:00
4c22d38f92 Keying: apply garbage / core mattes after clamping
Applying this mattes before clamping produced ugly outline around
matte boundaries.
2012-07-23 18:27:06 +00:00
9987a8fca7 Removed parameter from executePixel and initializeTileData. 2012-07-13 12:24:42 +00:00
8b865c01cd style cleanup: comments 2012-06-30 22:49:33 +00:00
6a1d82490e use m_ prefix for compositor class members (all compositor operations). 2012-06-26 01:22:05 +00:00
d71d41755e Fixes for area of interest in keying nodes: no need to wait for the whole
input image to be calculated in some cases, use only actual area which is
needed to calculate current tile.

Seems to be giving some % of speedup. Verified result of keying before
this patch and after this patch and they were identical, so hopefully
now area of interest is indeed correct.
2012-06-24 10:31:48 +00:00
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
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
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
ecbd2842dc Add screen balance into interface
Could be helpful to be played around. Default value is 0.5,
Most probably this default value should be set manually for
older files.
2012-06-10 17:41:04 +00:00
6b13203a9c Changes to keying nodes:
- Replace FastGaussian blur with GaussianBokeh blur which should give better results.
- Changes a bit formula of saturation which in some cases gives better result.
  Also included (commented out) original formula which was also checked by Brecht
  and which gave better result in some other cases.
- Made clipping white/black temporal dependent, so hopefully it wouldn't destroy
  gradients on edges.
2012-06-09 17:15:38 +00:00
876665ac25 Initial commit of new keying nodes
First node is called Keying Screen (Add -> Matte -> Keying Screen) and it's
aimed to resolve issues with gradients on green screens by producing image
with gradient which is later used as an input for screen color in keying nodes.

This node gets motion tracks from given movie clip and trackign object and uses
them to define color and position of points of gradient: for position marker's
position on current frame is sued, for color average color of pattern area is
used.

Gradient is calculating in the following way:
- On first step voronoi diagram is creating for given tracks.
- On second step triangulation of this diagram happens by connecting sites
  to edges which defines area this site belongs to.
- On third step gradient filling of this triangles happens. One of triangle
  vertices is colored with average track color, two rest vertoces are colored
  with average color between two neighbor sites. Current pixel's color in
  triangle is calculating as linear combination of vertices colors and
  barycentric coordinates of this pixel.

This node is implemented for both tile and legacy compositor systems.

Second node is basically a combination of several existing nodes to make keying
more straighforward and reduce spagetti mess in the compositor, but it also
ships some fresh approaches calculating matte which seems to be working better
for not actually green screens.

This node supports:
- Chroma preblur
- Dispilling
- Clip white/black
- Dilate/Erode
- Matte post blur

This node doesn't support chroma pre-blur for legacy compositor (yet).

There're still lots of stuff to be improved here, but this nodes night already
be used i think.

Some details might be found on this wiki page:
http://wiki.blender.org/index.php/User:Nazg-gul/Keying

This patch also contains some currently unused code from color math module, but
it was used for tests and might be used for tests in the future. Think it's ok
to have it in branch at least.
2012-05-29 14:00:47 +00:00