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
2014-11-28Cleanup: unused headersCampbell Barton
2014-11-24BLI_utildefines: add UNUSED_VARS() macroCampbell Barton
2014-11-16Cleanup: use BLI_listbase_*** prefix for count,sort,sort_rCampbell Barton
2014-07-26New compositor node "Sun Beams"Lukas Tönne
This allows adding a "fake" sun beam effect, simulating crepuscular rays from light being scattered in a medium like the atmosphere or deep water. Such effects can be created also by renderers using volumetric lighting, but the compositor feature is a lot cheaper and is independent from 3D rendering. This makes it ideally suited for motion graphics. The implementation uses am optimized accumulation method for gathering color values along a line segment. The inner buffer loop uses fixed offset increments to avoid unnecessary multiplications and avoids variables by using compile-time specialization (see inline comments for further details).
2014-07-15No preemptive removal of muted and reroute nodes from compositor nodeLukas Tönne
trees for localization (previews and viewer evaluation). This is handled entirely by the compositor already. Doing this during localization is redundant and risks divergent behavior.
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-20Nodes: make default group nodes slighly wider, to match other node width ↵Brecht Van Lommel
defaults.
2014-04-02Fix T39547: Toggling render passes on active scene does not updateLukas Tönne
render layer nodes in a pinned tree from different scene. The way these updates work is a nasty legacy hack: https://developer.blender.org/diffusion/B/browse/master/source/blender/nodes/composite/node_composite_tree.c$277 This function is called //very frequently// by the get_from_context method. However, this does not get called for pinned node trees, so when showing a different scene's compositing nodes in the editor they may not get updated correctly. Now moved this update call out of get_from_context so it happens in any case. Will be called no more frequently than before (on every redraw). Eventually the depsgraph should handle this more precisely, it's just a simple ID dependency anyway ...
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-12Code cleanup: de-duplicate switch statement, style editsCampbell Barton
2014-03-11New Corner Pin node: uses explicit corner values for a plane warp ↵Lukas Tönne
transformation. This was suggested by Christopher Barrett (terrachild). Corner pin is a common feature in compositing. The corners for the plane warping can be defined by using vector node inputs to allow using perspective plane transformations without having to go via the MovieClip editor tracking data. Uses the same math as the PlaneTrack node, but without the link to MovieClip and Object. {F78199} The code for PlaneTrack operations has been restructured a bit to share it with the CornerPin node. * PlaneDistortCommonOperation.h/.cpp: Shared generic code for warping images based on 4 plane corners and a perspective matrix generated from these. Contains operation base classes for both the WarpImage and Mask operations. * PlaneTrackOperation.h/.cpp: Current plane track node operations, based on the common code above. These add pointers to MovieClip and Object which define the track data from wich to read the corners. * PlaneCornerPinOperation.h/.cpp: New corner pin variant, using explicit input sockets for the plane corners. One downside of the current compositor design is that there is no concept of invariables (constants) that don't vary over the image space. This has already been an issue for Blur nodes (size input is usually constant except when "variable size" is enabled) and a few others. For the corner pin node it is necessary that the corner input sockets are also invariant. They have to be evaluated for each tile now, otherwise the data is not available. This in turn makes it necessary to make the operation "complex" and request full input buffers, which adds unnecessary overhead.
2014-02-22Code cleanup: styleCampbell Barton
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-05Quiet warningCampbell Barton
2014-02-05Fix T38340 and T38473: fixed Scene pointers in Composite and Defocus nodes ↵Lukas Tönne
don't get updated based on context. As discussed in T38340 the solution is to use the current scene from context whenever feasible. Composite does not use node->id at all now, the scene which owns the compositing node tree is retrieved from context instead. Defocus node->id is made editable by the user. By default it is not set, which also will make it use the contextual scene and camera info. The node->id pointer in Defocus is **not** cleared in older blend files. This is done for backward compatibility: the node will then behave as before in untouched scenes. File Output nodes also don't store scene in node->id. This is only needed when creating a new node for initializing the file format. Reviewers: brecht, jbakker, mdewanchand Reviewed By: brecht Differential Revision: https://developer.blender.org/D290
2014-01-16Code Cleanup: style and redundant castsCampbell Barton
2014-01-13Code Cleanup: replace checks for ima->source with BKE_image_is_animatedCampbell Barton
2014-01-04Changed percentage and 0-1 number fields to use sliders. This is more ↵William Reynish
consistent. Reviewed by Brecht van Lommel, Thomas Dinges and Jonathan Williamson
2013-12-22Style Cleanup: remove preprocessor indentation (updated wiki style guide too)Campbell Barton
2013-12-10Style CleanupCampbell Barton
2013-12-09Compositor node preview:Jeroen Bakker
moved the hide preview logic to a method on bNodeTreeType. This way the node.c keeps clean, but logic could still be shared. Implementing this per node, can lead to future errors.
2013-11-17Style Cleanup: whitespaceCampbell Barton
2013-11-12Make dynamic node labels possible as a registerable function 'draw_label' ↵Lukas Toenne
(simple 'label' identifier is already in use, need to avoid API breakage). This should simply return a string. The dynamic label can still be overridden by the user-defined node.label string.
2013-11-12Instead of requiring a const char* return from the (optional) node label ↵Lukas Toenne
callback function, let it write into a mutable string buffer. This will allow actual dynamic labels for nodes using the python API.
2013-11-06Syncing methods for Color Balance node LGG and ASC-CDL modes. The settings ↵Lukas Toenne
for either mode are converted into equivalent settings of the other. This keeps the result of both modes roughly the same and mimics the previous behavior when settings were shared by both modes (but not equivalent). NOTE: Due to the use of additional sRGB conversion in the LGG mode the result is not entirely accurate, this should perhaps be fixed. Settings for each mode are kept in their own color values nevertheless, this avoids potential problems with float precision.
2013-11-06Fix #37333: Bad default value in Color Balance. Use independent ↵Lukas Toenne
offset/power/slope variables for the CDL mode in color balance node. This avoids stupid default values in particular for offset, which would be 1 when just using the lift value for it.
2013-11-05code cleanup: typosCampbell Barton
2013-10-31code cleanup: warningsCampbell Barton
2013-10-04Fix related to [#36926] 'scale' Node doesn't work properly.Bastien Montagne
Scene/Render "spaces" are actually absolute values, they do not use the input X/Y scale factors, hide them in this case. Thanks to Lukas for review and improvement!
2013-09-26Fix cycles issue with mapping node rotation and scale order. When using bothBrecht Van Lommel
scale and rotation in mapping node, there would be shearing, and the only way to avoid that was to add 2 mapping nodes. This is because to transform the texture, the inverse transform needs to be done on the texture coordinate Now the mapping node has Texture/Point/Vector/Normal types to transform the vector for a particular purpose. Point is the existing behavior, Texture is the new default that behaves more like you might expect.
2013-09-12Partial fix for #36706: Prevent invalid sockets in the FileOutput node by ↵Lukas Toenne
removing sockets without storage data.
2013-09-11Fix #36327: cycles render layers exclude layers animation did not work well.Brecht Van Lommel
This is kind of another way to animate layers which is disabled, but add an exception to make this case work.
2013-08-16Merge plane track feature from tomato branchSergey Sharybin
This commit includes all the changes made for plane tracker in tomato branch. Movie clip editor changes: - Artist might create a plane track out of multiple point tracks which belongs to the same track (minimum amount of point tracks is 4, maximum is not actually limited). When new plane track is added, it's getting "tracked" across all point tracks, which makes it stick to the same plane point tracks belong to. - After plane track was added, it need to be manually adjusted in a way it covers feature one might to mask/replace. General transform tools (G, R, S) or sliding corners with a mouse could be sued for this. Plane corner which corresponds to left bottom image corner has got X/Y axis on it (red is for X axis, green for Y). - Re-adjusting plane corners makes plane to be "re-tracked" for the frames sequence between current frame and next and previous keyframes. - Kayframes might be removed from the plane, using Shit-X (Marker Delete) operator. However, currently manual re-adjustment or "re-track" trigger is needed. Compositor changes: - Added new node called Plane Track Deform. - User selects which plane track to use (for this he need to select movie clip datablock, object and track names). - Node gets an image input, which need to be warped into the plane. - Node outputs: * Input image warped into the plane. * Plane, rasterized to a mask. Masking changes: - Mask points might be parented to a plane track, which makes this point deforming in a way as if it belongs to the tracked plane. Some video tutorials are available: - Coder video: http://www.youtube.com/watch?v=vISEwqNHqe4 - Artist video: https://vimeo.com/71727578 This is mine and Keir's holiday code project :)
2013-08-03Cycles / SSS:Thomas Dinges
* Render Passes are now available for Subsurface Scattering (Direct, Indirect and Color pass). This is part of my GSoC project, SVN merge of r58587, r58828 and r58835.
2013-07-23fix for crash when unlinking a scene from the renderlayers, also no need for ↵Campbell Barton
PROP_ID_SELF_CHECK here.
2013-06-29re-arrange '--help' output into more useful sections (added debug, python).Campbell Barton
also minor style cleanup
2013-06-12Fix #35703, Viewer node doesn't updates image sometimes. The viewer node was ↵Lukas Toenne
not getting correctly initialized node->id pointer to the Viewer image (thanks to Sergey for figuring that out). The original proposal was to add another special init hack for the viewer node->id, but rather would do it right and so moved all the special init hacks for constant ID backpointers (Scene for RenderLayer, Composite, Defocus, FileOutput and MovieClip for MovieClip, MovieDistortion and Stabilization nodes). These are now part of the local init callbacks functions of the appropriate nodes, using the new initfunc_api callback which takes a Context pointer, so they have access to Scene.
2013-06-01Extended max size for group node types from 200 to 400, in case users need ↵Lukas Toenne
long socket names visible.
2013-05-29Cleanup: Removed all NODE_OPTIONS flags from C node type definitions, these ↵Lukas Toenne
are no longer required and have no effect. Whether or not a node supports additional options buttons is now determined by the existence of a draw callback (uifunc and/or uifuncbut).
2013-05-28Fix #35547: incomplete tooltips in node editorSergey Sharybin
Descriptions were missing since PyNodes integration. Thanks to lukas for patch review!
2013-05-27style cleanup: nodesCampbell Barton
2013-05-27style cleanup: nodesCampbell Barton
2013-04-20Removed the group_tree_idname property from node types. This was a bit of a ↵Lukas Toenne
hack to associate node group types to specific tree types for node group operators. Since the node group operators now work independent from this property (see r56183) that property is no longer needed and just pollutes the bNodeType struct.
2013-04-082D stabilization default filter to bilinearSergey Sharybin
2013-04-06Node UI:Thomas Dinges
* After PyNodes merge, many node sockets had sliders, instead of the arrow buttons (as the PROP_FACTOR subtype now actually was used). Change those back now, after artists feedback.
2013-04-03Fix #33628, Segmentation fault after pasting a closed group of nodes into an ↵Lukas Toenne
open group. Finally now there is a proper check for pasting nodes into groups. It uses the poll_instance callback of node types to determine if a node can be added into a specific node tree. Currently this is only implemented for group nodes and does a recursive check to avoid pasting a node group into itself (on any level, also nested groups).
2013-03-28style cleanup: osl and NULL pointer use, also correct sequencer gap operator ↵Campbell Barton
id's
2013-03-27Fix #34779: Channels disappear from multilayer exr sequenceSergey Sharybin
Issue was caused by delayed or missing image user frame number update, which lead to image loading failure in cases node is updating from image signal callback. Solved in a way that file from image datablock is used for sockets detection instead of loading image for current frame.
2013-03-24fix for struct definition building with msvc2008 and some style cleanup.Campbell Barton
2013-03-22Node preview merge function now has an additional option "remove_old", which ↵Lukas Toenne
could be used if previous previews should be retained after recalculating (not used currently, old previews are dropped entirely for now, because it could be confusing). Also moved the sync and merge for previews into the respective tree callbacks for consistency. This way the handling of previews can be changed for each tree type individually if necessary.