Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-03-14Fix T47785: Rendering Crash, Node Connector Crash, Changing Editors CrashSergey Sharybin
Regressions after 2.76, to be backported to 2.77.
2016-02-21Fix compositor using edge repeat policy when it shouldn'tSergey Sharybin
Was easy to notice when alpha-overing smaller image with blur on the bigger frame.
2016-02-17Fix T47452: Translate-node seams w/ subpixel offsetCampbell Barton
2015-08-27Fix T45617: Map UV node produces image artifactsSergey Sharybin
Basically filtering was happening twice, first time by applying weights of EWA filter itself and then by applying subpixel offset while reading pixel values.
2015-03-12Cleanup: styleCampbell Barton
2015-03-09Fix T43908: Mask render bug, one pixel black lineSergey Sharybin
This was a regression caused by attempts to fix T42844 and there were some red-herrings which lead me to the wrong way to fix it. It's some deeper issue than just interpolation offset, it's mainly how the node resolution is being mapped to each other. It could be actually a part of canvas awareness project..
2015-01-23cleanup: styleCampbell Barton
2015-01-20Fix T42844: Compositor scale offsetSergey Sharybin
Different interpolation methods in compositor could lead to 0.5 pixel offset in final renders. This is because of some inconsistency in integer coordinates which might mean pixel corner or pixel center. Should be all fine now.
2015-01-19D627: Memory usage optimization for the compositor.Jeroen Bakker
The compostor used a fixed size of 4 floats to hold pixel data. this patch will select size of a pixel based on its type. It uses 1 float for Value, 3 float for vector and 4 floats for color data types. When benchmarking on shots (opening shot of caminandes) we get a reduction of memory of 30% and a tiny speedup as less data transformations needs to take place (but these are negligable. More information of the patch can be found on https://developer.blender.org/D627 and http://wiki.blender.org/index.php/Dev:Ref/Proposals/Compositor2014_p1.1_TD Developers: jbakker & mdewanchand Thanks for Sergey for his indept review.
2014-04-15Structural cleanup and improvements for the compositor.Lukas Tönne
Many parts of the compositor are unnecessarily complicated. This patch aims at reducing the complexity of writing nodes and making the code more transparent. == Separating Nodes and Operations == Currently these are both mixed in the same graph, even though they have very different purposes and are used at distinct stages in the compositing process. The patch introduces dedicated graph classes for nodes and for operations. This removes the need for a lot of special case checks (isOperation etc.) and explicit type casts. It simplifies the code since it becomes clear at every stage what type of node we are dealing with. The compiler can use static typing to avoid common bugs from mixing up these types and fewer runtime sanity checks are needed. == Simplified Node Conversion == Converting nodes to operations was previously based on "relinking", i.e. nodes would start with by mirroring links in the Blender DNA node trees, then add operations and redirect these links to them. This was very hard to follow in many cases and required a lot of attention to avoid invalid states. Now there is a helper class called the NodeConverter, which is passed to nodes and implements a much simpler API for this process. Nodes can add operations and explicit connections as before, but defining "external" links to the inputs/outputs of the original node now uses mapping instead of directly modifying link data. Input data (node graph) and result (operations graph) are cleanly separated. == Removed Redundant Data Structures == A few redundant data structures have been removed, notably the SocketConnection. These are only needed temporarily during graph construction. For executing the compositor operations it is perfectly sufficient to store only the direct input link pointers. A common pointer indirection is avoided this way (which might also give a little performance improvement). == Avoid virtual recursive functions == Recursive virtual functions are evil. They are very hard to follow during debugging. At least in the parts this patch is concerned with these functions have been replaced by a non-virtual recursive core function (which might then call virtual non-recursive functions if needed). See for example NodeOperationBuilder::group_operations.
2013-12-22Style Cleanup: remove preprocessor indentation (updated wiki style guide too)Campbell Barton
2013-12-04Fix for EWA (elliptical weighted average) sampling in the compositor.Lukas Tönne
EWA sampling is designed for downsampling images, i.e. scaling down the size of input image pixels, which happens regularly in compositing. While the standard sampling methods (linear, cubic) work reasonably well for linear transformations, they don't yield good results in non-linear cases like perspective projection or arbitrary displacement. EWA sampling is comparable to mipmapping, but avoids problems with discontinuities. To work correctly the EWA algorithm needs partial derivatives of the mapping functions which convert output pixel coordinates back into the input image space (2x2 Jacobian matrix). With these derivatives the EWA algorithm projects ellipses into the input space and accumulates colors over their area. This calculation was not done correctly in the compositor, only the derivatives du/dx and dv/dy were calculation, basically this means it only worked for non-rotated input images. The patch introduces full derivative calculations du/dx, du/dy, dv/dx, dv/dy for the 3 nodes which use EWA sampling currently: PlaneTrackWarp, MapUV and Displace. In addition the calculation of ellipsis area and axis-aligned bounding boxes has been fixed. For the MapUV and Displace nodes the derivatives have to be estimated by evaluating the UV/displacement inputs with 1-pixel offsets, which can still have problems on discontinuities and sub-pixel variations. These potential problems can only be alleviated by more radical design changes in the compositor functions, which are out of scope for now. Basically the values passed to the UV/Displacement inputs would need to be associated with their 1st order derivatives, which requires a general approach to derivatives in all nodes.
2013-09-05code cleanup:Campbell Barton
- add missing headers from cmake (own omission) - quiet rna_test.c unused define warnings. - minor style edits - spelling corrections and ignore all uppercase words with spell checking script.
2013-09-05Removed unused variables used only in BLI_assert, this triggers compiler ↵Lukas Toenne
warning in release builds.
2013-09-05Extend mode option for MemoryBuffer reading in compositor. This will allow ↵Lukas Toenne
proper interpolation of pixel values when using wrapping in the Translate node. Implemented in inline functions, so won't cause overhead if constant values are passed (as happens with most calls using the default argument).
2012-08-16compositor - EWA filter was blurring too much by default, this caused the ↵Campbell Barton
displace node to blur the image when no displacement was applied, making images fuzzy, the original C code has an interpolation option. Added this option back and use for displace and UV composite nodes.
2012-08-10use define for bokeh blur size, also define size of determineResolution args.Campbell Barton
2012-08-10add asserts in MemoryBuffer.readNoCheck() so it raises an error when used ↵Campbell Barton
incorrectly in debug mode.
2012-08-03fix for bokeh blur using uninitialized memory - it would cause some tiles ↵Campbell Barton
not to be blurred. was in fact a bug in MemoryBuffer::getMaximumValue
2012-07-25Defocus node.Jeroen Bakker
added some maxblur optimizations. Per tile the max blur is calcualted, will save some unneeded CPU/GPU loops GPU: 1:09 => 0:21 CPU: 1:50 => 0:35
2012-07-22style cleanupCampbell Barton
2012-07-17code cleanup: spellingCampbell Barton
2012-07-12Compositor:Jeroen Bakker
re-optimized the Defocus node. * localized MemoryBuffers * removed read(x,y) calls * shuffled some lines in the execute pixel * added a readNoCheck function to the memorybuffer (only use this when you are certain you are reading a pixel inside the memorybuffer.
2012-07-10Fix compilation error when using MSVCSergey Sharybin
2012-07-10Inline the read Memory Buffer functions for speed optimizations.Jeroen Bakker
2012-06-26rename remaining class members with m_ prefix.Campbell Barton
2012-06-25optionally use guarded alloc for tiles compositor, also replace allocation ↵Campbell Barton
functions with a macro.
2012-06-14Fixed glaresJeroen Bakker
2012-06-14stule cleanup: node headersCampbell Barton
2012-06-03minor optimizations to compositor, avoid indirections when operating array ↵Campbell Barton
members multiple times
2012-05-18style cleanup: compositor, pointer syntax, function brace placement, line lengthCampbell Barton
2012-05-17 ____ Jeroen Bakker
`````|````` | | | ..'''' | | | |______ .'' | | | | ..' | | |_______ |___________ ....'' merge to TRUNK! * The old compositor is still available (Debug Menu: 200) This commit was brought to you by: Developers: * Monique Dewanchand * Jeroen Bakker * Dalai Felinto * Lukas Tönne Review: * Brecht van Lommel Testers: * Nate Wiebe * Wolfgang Faehnle * Carlo Andreacchio * Daniel Salazar * Artur Mag * Christian Krupa * Francesco Siddi * Dan McGrath * Bassam Kurdali But mostly by the community: Gold: Joshua Faulkner Michael Tiemann Francesco Paglia Blender Guru Blender Developers Fund Silver: Pablo Vazquez Joel Heethaar Amrein Olivier Ilias Karasavvidis Thomas Kumlehn Sebastian Koenig Hannu Hoffrén Benjamin Dansie Fred M'ule Michel Vilain Bradley Cathey Gianmichele Mariani Gottfried Hofmann Bjørnar Frøyse Valentijn Bruning Paul Holmes Clemens Rudolph Juris Graphix David Strebel Ronan Zeegers François Tarlier Felipe Andres Esquivel Reed Olaf Beckman Jesus Alberto Olmos Linares Kajimba Maria Figueiredo Alexandr Galperin Francesco Siddi Julio Iglesias Lopez Kjartan Tysdal Thomas Torfs Film Works Teruyuki Nakamura Roger Luethi Benoit Bolsee Stefan Abrahamsen Andreas Mattijat Xavier Bouchoux Blender 3D Graphics and Animation Henk Vostermans Daniel Blanco Delgado BlenderDay/2011 Bradley Cathey Matthieu Dupont de Dinechin Gianmichele Mariani Jérôme Scaillet Bronze (Ivo Grigull, Dylan Urquidi, Philippe Derungs, Phil Beauchamp, Bruce Parrott, Mathieu Quiblier, Daniel Martinez, Leandro Inocencio, Lluc Romaní Brasó, Jonathan Williamson, Michael Ehlen, Karlis Stigis, Dreamsteep, Martin Lindelöf, Filippo Saracino, Douwe van der Veen, Olli Äkräs, Bruno D'Arcangeli, Francisco Sedrez Warmling, Watchmike.ca, peter lener, Matteo Novellino, Martin Kirsch, Austars Schnore, KC Elliott, Massimiliano Puliero, Karl Stein, Wood Design Studios, Omer Khan, Jyrki Kanto, Michał Krupa, Lars Brubaker, Neil Richmond, Adam Kalisz, Robert Garlington, Ian Wilson, Carlo Andreacchio, Jeremias Boos, Robert Holcomb, Gabriel Zöller, Robert Cude, Natibel de Leon, Nathan Turnage, Nicolas Vergnes, Philipp Kleinhenz, Norman Hartig, Louis Kreusel, Christopher Taylor, Giovanni Remondini, Daniel Rentzsch, Nico Partipilo, Thomas Ventresco, Johannes Schwarz, Александр Коротеев, Brendon Harvey, Marcelo G. Malheiros, Marius Giurgi, Richard Burns, Perttu Iso-Metsälä, Steve Bazin, Radoslav Borisov, Yoshiyuki Shida, Julien Guigner, Andrew Hunter, Philipp Oeser, Daniel Thul, Thobias Johansson, Mauro Bonecchi, Georg Piorczynski, Sebastian Michailidis, L M Weedy, Gen X, Stefan Hinze, Nicolò Zubbini, Erik Pusch, Rob Scott, Florian Koch, Charles Razack, Adrian Baker, Oliver Villar Diz, David Revoy, Julio Iglesias Lopez, Coen Spoor, Carlos Folch, Joseph Christie, Victor Hernández García, David Mcsween, James Finnerty, Cory Kruckenberg, Giacomo Graziosi, Olivier Saraja, Lars Brubaker, Eric Hudson, Johannes Schwarz, David Elguea, Marcus Schulderinsky, Karel De Bruijn, Lucas van Wijngaarden, Stefano Ciarrocchi, Mehmet Eribol, Thomas Berglund, Zuofei Song, Dylan Urquidi )