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
2015-03-27Fix T44149: Compositing : Node Groups do not work correctlySergey Sharybin
Input constants are to be connected before removing proxies, otherwise node groups might give totally different result. This is a regression and to be put into final release.
2015-03-27Compositor: Code cleanup, prepare for strict C++ flagsSergey Sharybin
2015-03-19Fix T44040: Blender crashes when nodes are mutedSergey Sharybin
It was actually an old issue with wrong conversion happening for muted nodes, which wasn't visible before memory optimization commit. This is to be backported to the final release.
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-09-08Fix T41573: Compositing reroute converts floats to red colorBastien Montagne
At compo level, only skip data type conversion if both ends of a link do not require it. Thanks to Lukas for advices and review.
2014-07-15Fix T41067: Muted nodes still do data type conversions.Lukas Tönne
Proxy operations from muted nodes would still create conversion operations where the datatypes don't match, which creates unexpected behavior. Arguably datatype conversion could still happen even when the main operation is muted, but this would be a design change and so is disabled now.
2014-07-08Fix T40986: crash on using the viewer node inside of group nodes.Lukas Tönne
Viewers were activated both inside the active group as well as the top level tree (the latter being a quick fix for getting a fallback viewer). This caused a race condition on the shared viewer image. Now the active viewer is defined at node conversion time in the converter so that only one can be active at a time without each node having to follow complicated rules for exclusion.
2014-04-25Fix T39799: Backdrop (compositor) ignores alpha.Lukas Tönne
This issue is because of a somewhat "special" behavior in old code, which got lost during rB09874df: There was a variant of the `relinkConnections` function which would leave the socket completely unconnected. This is not a valid state really (given that each unconnected input must otherwise connected to a constant `Set` type node), but was used as a way to distinguish connected alpha/depth sockets in composite and viewer output nodes. https://developer.blender.org/diffusion/B/browse/master/source/blender/compositor/intern/COM_InputSocket.cpp;28a829893c702918afc5ac1945a06eaefa611594$69 After the large cleanup patch ({D309}) every socket is now automatically connected to a constant, such that `getInputSocketReader` will never return a NULL pointer. This breaks the previous test method, which needs to be replaced by more explicit flags. Luckily this was done only for very few output nodes (Composite, Viewer, Output-File). These now use the regular SetValueOperation default in case "use alpha" is disabled, but set this to an explicit 1.0 value instead of mapping to the node socket.
2014-04-17Style cleanupCampbell Barton
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.