January 8, 2012, 20:30 (GMT) |
Refactor of Distance Matte Node/Operation reinforcing that all Matte operations should output the alpha channel (VALUE). thus it needs the SetAlpha operation (instead of the split Alpha) |
January 8, 2012, 02:11 (GMT) |
Distance Matte node - Tile this matte operation is outputting RGBA (in oppose to only the A value as some other mattes). The reason for this is to avoid and extra operation to get the main output ready (which is always needed for the preview so we may as well get it done). Instead of using the SetAlphaOperation I'm using SeparateChannel to extract the alpha from the output of the Distance Matte operation. Jeroen, I think it's simpler if I go ahead and commit the nodes if I think they are good. If there are problems it'll be simpler to fix in svn since they should be small. |
January 6, 2012, 19:13 (GMT) |
Separate+Combine YUV + Luminance Matte node for Tile reviewed by Jeroen Bakker |
January 6, 2012, 18:40 (GMT) |
TileBranch * added preview to the DifferenceMatteNode |
January 5, 2012, 17:02 (GMT) |
Tile branch * added the simple start (4star) glare operation * cleaned up the FogGlowImage operation. In the trunk implementation there is an error in the formula when using the 'Quality' setting low quality will create larger stars. In the new implementation all will be done in the high quality setting. |
January 4, 2012, 19:18 (GMT) |
MapUV Node - Tile This node requires an EWA filter to read the final value. In COM_MemoryBuffer.cpp I copied the functions from texture.c The reason for copying and not re-using from a header is to allow for further refactoring. Basically the codes should be independent. The EWA happens automatically when you call the read function with two extra arguments (dx and dy, calculated from a differential filter pass before in the operation). Good news, the result works better than trunk. In trunk the edges of the image get black, here it works all fine. |
January 4, 2012, 14:43 (GMT) |
TileBranch * added the basic implementation of the GlareNode * only implemented the FogGlow * all others will also do fogglow FogGlowImageOperation calculates a BokehImage for the glow. This way the BokehBlur is reused to calculate the actual blur GlareThresholdOperation will generate the image where the effect must take place. (BTL function in the old compositor) |
January 3, 2012, 17:33 (GMT) |
Merge changes from commits 42814, 42928, 43004 into new compositing nodes code, to complete the previous merge commit. |
January 3, 2012, 12:40 (GMT) |
Tile Branch * make sure that OpenCL initialization works for the MS compiler. Issue concerned the way when local variables are initialized. GNU based compilers initialize locals when the variable is defined. MS compiler first initialize all local variables, before any code will be executed. The arrays are now initialized in code to make sure it compiles on MS compiler. |
January 3, 2012, 12:06 (GMT) |
Tile branch * Enabled OpenCL for the compositor * Remove not working Threadind models of the compositor * OpenCL will only work when the COM_TM_QUEUE is enabled and COM_OPENCL_ENABLED * Updated the scons build system |
January 3, 2012, 04:23 (GMT) |
Merging Trunk changes into Tile branch: SVN Range: 42300-43091. Resolved issues: * Re-added compat code for new Compositor in readfile.c * Matrix multiplication order fixes, see commit 42670. Tested compile on windows, branch looks good after merge! :) |
January 3, 2012, 02:38 (GMT) |
Tile Branch * Fix some wrong #if's to #ifdef's |
January 2, 2012, 16:24 (GMT) |
Tile branch implemented the thread queue pattern for work scheduling. This is stable and has the possibility to do OpenCL threading in the future. This threading model is selected to be the default one. Still needed to be tested by other users to make sure it is the right direction. Jeroen Bakker - At Mind - |
December 15, 2011, 13:38 (GMT) |
Tile branch: removed a warning (missing return) removed a debug statement |
December 15, 2011, 12:42 (GMT) |
Tile branch: added the worker pattern in the workscheduler for stability reasons. the execution time is slower (+-70% of normal speed) but it does not crash that much. Goal is still to use the pthreaded model. but this needs some more complex debugging. Jeroen |
December 14, 2011, 08:51 (GMT) |
Tile branch some changes to clean up memory in order to continue tracking the threading/memory issue |
December 12, 2011, 10:22 (GMT) |
Generalization of group node conversion in the new compositor. This allows groups inside groups to work and also simplifies the code a lot. * Ungrouping of group nodes ("expanding" might be a better name?) is done as part of the general addNodeTree function now. This way the ungrouping happens recursively on all levels of group nodes. * The adding of a node tree works in three basic steps: 1) Add all nodes, including group nodes (ignoring internals of the group at this point) 2) Add links between nodes (again, no group internals here) 3) Expand all newly added group nodes from this tree, which replaces them with internal nodes and proxy nodes for inputs and outputs. * Expanding the node tree works different now: 1) First add proxy nodes for all input/output sockets. The group node sockets are then reconnected to the "outer" proxy sockets, while the internal group sockets (sock->groupsock) are assigned to the "inner" proxy sockets. 2) Then the actual inner node tree is added, which connects internal nodes to the proxies An important change is that the list of nodes, which is used to look up link targets by their bNode/bNodeSocket pairs, is now limited to the nodes added from the current tree (including proxies from the group). This is necessary to avoid ambiguous assignments from other instances of the same group node type! An advantage is also that now no more special group socket pointers and "insideGroup" flags are needed for the Socket class, making the code a bit simpler. * Currently the "actual data type" is not converted on proxy nodes (XXX TODO in the patch), this should be revisited. |
December 10, 2011, 12:42 (GMT) |
Fixed some destructor calls on array variables. |
December 9, 2011, 14:40 (GMT) |
Fix for group nodes in new compositor: when ungrouping the internal groups prior to conversion all unlinked inputs of the group node would be ignored. What should actually happen is that inputs without _internal_ connections are ignored, since these are not used for any outputs. |
December 9, 2011, 11:38 (GMT) |
Finished all blend modes for the color mix node. In detail: * Added missing implementations for Dodge, Burn, Hue, Saturation, Value and Color blend modes. * Reviewed all other blend modes for correctness. * Base Operation: Leave alpha unchanged (all color mix ops do so); use the alpha multiply value like all others (just for clarity, base op is not really used) * Difference: Use fabsf instead of fabs, the latter works on doubles instead floats. * Divide: return 0 if divisor is 0. |
|