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
2012-10-25Internal node links are now cached in a per-node list, instead of being ↵Lukas Toenne
generated as a transient list that is returned from the callback and had to be freed by the caller. These internal links are used for muted nodes, disconnect operators and reroute nodes, to effectively replace the node with direct input-to-output links. Storing this list in the node has the advantage of requiring far fewer calls to the potentially expensive internal_connect callback. This was called on every node redraw ... Also it will allow Cycles to properly use the internal links for muted nodes, which ensures consistent behavior. The previous method was not applicable in Cycles because transient list return values are not supported well in the RNA and particularly the C++ API implementation.
2012-10-24Removed the experimental (and commented-out) code for FOR and WHILE loops in ↵Lukas Toenne
nodes. This was a feature i tested a while back but was only partially supported by Blender Internal renderer and the old compositor. The main idea was to have nodes that automatically mirror input and output sockets to support incremental changes of "internal variables". It is not a well-supported feature of the primary node systems (shader, compositor, texture) in Blender. If anybody wants to create a node system that has actual use for loops, they can do so much more elegantly with Python nodes, but it does not have to be a core node type in Blender. Removing this should ease node code maintenance a bit.
2012-10-24Adding a pixelate node.Jeroen Bakker
This makes it possible to create pixelized scale in the Tile compositor. Just append the node in front of a scale node or where you want the pixelization to take place. There were some bugs on this subject, but they used the work around to add a blur size of 0 in the place where they need the pixelization.
2012-10-16code cleanup: use float sizes for function args.Campbell Barton
2012-10-10Cycles: per-BSDF normal input and new Bump node.Brecht Van Lommel
Each BSDF node now has a Normal input, which can be used to set a custom normal for the BSDF, for example if you want to have only bump on one of the layers in a multilayer material. The Bump node can be used to generate a normal from a scalar value, the same as what happens when you connect a scalar value to the displacement output. Documentation has been updated with the latest changes: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes Patch by Agustin Benavidez, some implementation tweaks by me.
2012-10-01fix for some errors when unlinking.Campbell Barton
- movieclip unlink didn't clear node ID pointers from the scene (leaving dangling pointers). - mask datablock unlink was clearning references from scene nodes twice.
2012-09-15Color Management, Stage 2: Switch color pipeline to use OpenColorIOSergey Sharybin
Replace old color pipeline which was supporting linear/sRGB color spaces only with OpenColorIO-based pipeline. This introduces two configurable color spaces: - Input color space for images and movie clips. This space is used to convert images/movies from color space in which file is saved to Blender's linear space (for float images, byte images are not internally converted, only input space is stored for such images and used later). This setting could be found in image/clip data block settings. - Display color space which defines space in which particular display is working. This settings could be found in scene's Color Management panel. When render result is being displayed on the screen, apart from converting image to display space, some additional conversions could happen. This conversions are: - View, which defines tone curve applying before display transformation. These are different ways to view the image on the same display device. For example it could be used to emulate film view on sRGB display. - Exposure affects on image exposure before tone map is applied. - Gamma is post-display gamma correction, could be used to match particular display gamma. - RGB curves are user-defined curves which are applying before display transformation, could be used for different purposes. All this settings by default are only applying on render result and does not affect on other images. If some particular image needs to be affected by this transformation, "View as Render" setting of image data block should be set to truth. Movie clips are always affected by all display transformations. This commit also introduces configurable color space in which sequencer is working. This setting could be found in scene's Color Management panel and it should be used if such stuff as grading needs to be done in color space different from sRGB (i.e. when Film view on sRGB display is use, using VD16 space as sequencer's internal space would make grading working in space which is close to the space using for display). Some technical notes: - Image buffer's float buffer is now always in linear space, even if it was created from 16bit byte images. - Space of byte buffer is stored in image buffer's rect_colorspace property. - Profile of image buffer was removed since it's not longer meaningful. - OpenGL and GLSL is supposed to always work in sRGB space. It is possible to support other spaces, but it's quite large project which isn't so much important. - Legacy Color Management option disabled is emulated by using None display. It could have some regressions, but there's no clear way to avoid them. - If OpenColorIO is disabled on build time, it should make blender behaving in the same way as previous release with color management enabled. More details could be found at this page (more details would be added soon): http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management -- Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO integration and to Brecht van Lommel for some further development and code/ usecase review!
2012-09-04Cycles: merge of changes from tomato branch.Brecht Van Lommel
Regular rendering now works tiled, and supports save buffers to save memory during render and cache render results. Brick texture node by Thomas. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture Image texture Blended Box Mapping. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture http://mango.blender.org/production/blended_box/ Various bug fixes by Sergey and Campbell. * Fix for reading freed memory in some node setups. * Fix incorrect memory read when synchronizing mesh motion. * Fix crash appearing when direct light usage is different on different layers. * Fix for vector pass gives wrong result in some circumstances. * Fix for wrong resolution used for rendering Render Layer node. * Option to cancel rendering when doing initial synchronization. * No more texture limit when using CPU render. * Many fixes for new tiled rendering.
2012-08-23style cleanupCampbell Barton
2012-08-23despeckle composite nodeCampbell Barton
2012-08-22node tree functions for copy/free now support optional ID user count management,Campbell Barton
this is not used yet, so no functional changes.
2012-08-20fix for crash pasting nodes into a node tree when the ID pointer is lost.Campbell Barton
also fix for ID user count on paste which wasn't increasing.
2012-08-06inpaint node from tomato branch by Peter SchlaileCampbell Barton
http://en.wikipedia.org/wiki/Inpainting
2012-08-06prevent copy/paste from incompatible types (compo -> material for eg) - ↵Campbell Barton
would crash instantly.
2012-08-06fix for node clipboard leak on exit, also use blenders convention for ↵Campbell Barton
function naming with BKE clipboard funcs.
2012-08-06fix for crash when moving frames about in the node space, was possible to ↵Campbell Barton
move a node into its own child frame (causing recursive parent loop). also some minor code cleanup.
2012-08-02Clipboard feature for nodes. With the Copy operator a copy of all selected ↵Lukas Toenne
nodes and links between them is stored in an offscreen list (not in the library). The Paste operator then in turn copies these into the active node tree in the editor. Currently does not support copying of animation data. This would require copying of individual fcurves etc. between data block, which is not implemented yet. Also it is currently possible to circumvent some constraints of the nodes, in particular for node groups (e.g. no groups inside groups, render layer not inside groups).
2012-08-01style cleanup: whitespace, also add '?' to save over popup since it wasnt ↵Campbell Barton
totally clear it was a question (user pointed this out, they thought it was just notification and lost their work).
2012-06-19Implementation of node for track position inputSergey Sharybin
2012-06-14new scaling options to scale footage without stretching - add ↵Campbell Barton
stretch/fit/crop to compositor scale node, default behavior isnt changed. this is only added for the old compositor, will add to the new compositor next.
2012-06-14Kaying node from tomato branchSergey Sharybin
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-14Keying Screen node from tomato branchSergey Sharybin
Merge Keying Screen node developed in tomato branch into trunk. This node is aimed to make dealing with non-even greenscreens better by generating gradiented image which could be used a input for keyer nodes. Based on building voronoi diagram using motion tracking markers as sites position and average pattern color as color for that site. Pretty straignforward node, some documentation is there http://wiki.blender.org/index.php/User:Nazg-gul/Keying#Screen_color
2012-06-13code cleanup: use const float's where possible and specify vector size.Campbell Barton
2012-06-12Modification of node groups by adding/removing nodes is not possible yet. ↵Lukas Toenne
This patch extends the 'Make Group' operator and adds a new 'Separate' operator to add such functionality. 1) For inserting into existing groups: The 'Make Group from selected' (CTRL+g) operator shows a selection popup (like the object parenting operator), with options depending on the type of the active node (last selected): * "New" -> regular operator, creates new group type with all selected nodes inside. * "Insert" (only if active node is a group) -> adds all other selected nodes into the group. Currently still prohibits groups inside groups in general, though would be technically possible as long as no actual recursion occurs (group containing itself). 2) For extracting from an existing group: New 'Separate from group' operator (p), works similar to separating vertices/edges/faces from mesh. Two modes: * "Copy" makes a copy of the nodes in the parent tree, but keeps the original group intact. * "Move" removes selected nodes from the node group and adds them to the parent tree
2012-06-11rna read/write access to ...Campbell Barton
node_tree.nodes.active
2012-06-08Merging r47612 through r47623 from trunk into soc-2011-tomatoSergey Sharybin
2012-06-08Particle Info node for Cycles. This can be used to access particle ↵Lukas Toenne
information in material shaders for dupli objects. For now only the particle Age and individual Lifetime (in frames) are supported, more attributes can be added when needed. The particle data is stored in a separate texture if any of the dupli objects uses particle info nodes in shaders. To map dupli objects onto particles the store an additional particle_index value, which is different from the simple dupli object index (only visible particles, also works for particle dupli groups mode). Some simple use cases on the code.blender.org blog: http://code.blender.org/index.php/2012/05/particle-info-node/
2012-06-07Merging r47535 through r47566 from trunk into soc-2011-tomatoSergey Sharybin
2012-06-07style cleanupCampbell Barton
2012-06-04mask mode for clip editor developed by Sergey Sharybin, Pete Larabell and ↵Campbell Barton
myself. see: http://wiki.blender.org/index.php/User:Nazg-gul/MaskEditor note - mask editing tools need continued development, feather option is not working 100%
2012-06-01Merging r47307 through r47325 from trunk into soc-2011-tomatoSergey Sharybin
2012-06-01Reroute nodes, by Jeroen Bakker (patch #28443).Lukas Toenne
By holding shift and "cutting" a node link a new reroute helper node can be inserted. This consists of a single socket that can be used to insert additional connection points into a link. This can be used to keep a connection point in the tree when deleting a node, or to control the path of long connections for layout cleanup.
2012-05-29svn merge ^/trunk/blender -r47150:47184Campbell Barton
2012-05-29Initial commit of new keying nodesSergey Sharybin
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-29remove pynodes, were not working in 2.5, not ported to py3.xCampbell Barton
2012-05-24Merging r46725 through r46963 from trunk into soc-2011-tomatoSergey Sharybin
2012-05-22A number of new features for the node editor in general and the Frame node ↵Lukas Toenne
in particular. For an detailed user-level description of new features see the following blogpost: http://code.blender.org/index.php/2012/05/node-editing-tweaks/ TL;DR: * Frame node gets more usable bounding-box behavior * Node resizing has helpful mouse cursor indicators and works on all borders * Node selection/active colors are themeable independently * Customizable background colors for nodes (useful for frames visual distinction).
2012-05-21Cycles: add Object Info node, with outputs object location, object/materialBrecht Van Lommel
pass index, and a random number unique to the instance of the object. This can be useful to give some variation to a single material assigned to multiple instances, either manually controlled through the object index, based on the object location, or randomized for each instance. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Object_Info
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 )
2012-05-11Merging r46495 through r46557 from trunk into soc-2011-tomatoSergey Sharybin
2012-05-11A couple more changes to the file and image nodes to improve access to ↵Lukas Toenne
layers that don't follow Blender's rlayer.rpass naming scheme. --- Changes to File Output node --- * Flat layer names in EXR multilayer files. For a socket with name "AAA" the previous resulting EXR layer name would be "AAA.AAA", i.e. the render layer as well as render pass would use the socket name. Now the "render_layer.render_pass" scheme is ignored in multilayer files, socket names are directly written to EXR layers (EXR layer name is "AAA" in this example). If sockets should have a notion of "render layer" this can still be achieved by explicitly adding a separator, e.g. "AAA.BBB". When loading such layers into a Blender Image struct, the name is interpreted as a "render_layer.render_pass" again (although the image node does not care about it, see below). * Socket sub-paths (for singlelayer) or layer names (for multilayer) are stored in dedicated string variables in the socket storage data. This way the RNA can define precise string subtypes (PROP_FILEPATH) and length. The file/layer slots are defined as separate structs with own name properties in the RNA as well, so they can be used nicely with the list template. * Ensure unique socket paths/layer names to prevent overwriting of files and layers respectively. --- Changes to Image node --- * Loading multilayer OpenEXR files has improved layer name splitting into render layer + render pass names now. This properly supports arbitrary EXR layer names now. Example: OpenEXR layer name: AAA.BBB.CCC is split into Render layer name: AAA.BBB Render pass name: CCC If the layer name has no '.' separators the render layer name is empty. * Image node ignores the selected render layer in the image user data. Instead all existing layers are displayed at the same time by combining the render layer names with render pass names again, to reconstruct the original EXR layer name. This avoids the problem that render layers with empty name are not selectetable in the dropdown and allows using all image layers at the same time without duplicating the node.
2012-05-08Merging r46203 through r46413 from trunk into soc-2011-tomatoSergey Sharybin
2012-05-08Cycles: add light falloff node, with quadratic/linear/constant falloff and aBrecht Van Lommel
smoothing factor to reduce high values near the light. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Light_Falloff Note that this was already possible to do manually with the Ray Length, but this adds a convenient node for it. This commit also makes the mapping node min/max option work, fixing #31348.
2012-05-02Merging r46137 through r46202 from trunk into soc-2011-tomatoSergey Sharybin
2012-05-02A number of changes to node RNA and the file output node, to simplify socket ↵Lukas Toenne
types and make node code more robust for future nodes with extra socket data. * Removed the struct_type identifier from sockets completely. Any specialization of socket types can be done by using separate collections in RNA and customized socket draw callbacks in node type. Sockets themselves are pure data inputs/outputs now. Possibly the sock->storage data could also be removed, but this will change anyway with id properties in custom nodes. * Replaced the direct socket button draw calls by extra callbacks in node types. This allows nodes to draw sockets in specialized ways without referring to the additional struct_type identifier. Default is simply drawing the socket default_value button, only file output node overrides this atm. * File output node slots now use a separate file sub-path in their storage data, instead of using the socket name. That way the path is an actual PROP_FILEPATH property and it works better with the UI list template (name property is local to the data struct). * Node draw contexts for options on the node itself and detail buttons in the sidebar now have an extra context pointer "node" (uiLayoutSetContextPointer). This can be used to bind operator buttons to a specific node, instead of having to rely on the active/selected node(s) or making weak links via node name. Compare to modifiers and logic bricks, they use the same feature. * Added another operator for reordering custom input slots in the file output node.
2012-04-30Tomato: initial commit of mask editing tools into SVNSergey Sharybin
- Added new dtaablock called Mask which might be re-used in any area. Currently editing of masks happens in clip editor and they might be used in compositor nodes only. - Added new mode to clip clip editor to interact with masks. Implemented basic tools to create shapes, splines and points. Also implemented idea of UW points for feather which means feather points are have got U coordinate along spline (which is measured from 0 to 1) and W is it's weight meaning distance from main spline. - Spline points might be parented to movie tracks. Interface for this isn't best yet. - Rasterisaztion of masks happens in compositor node (Input -> Mask) Input image of this ode is used as reference for mask resolution. Currently all splines of all shapes are rasterizing independently which means shapes with holes are not supported. Also feather rasterization is not implemented. Rasterized was implemented by Pete Larbell, thanks! Do not consider this is something finished, there's still lots of things to be done (especially from interface and usability points of view).
2012-04-29style cleanup: whitespace / commasCampbell Barton
2012-03-01A number of improvements for the file output node(s).Lukas Toenne
1) Old CMP_NODE_OUTPUT_FILE and CMP_NODE_OUTPUT_MULTI_FILE have been merged, only CMP_NODE_OUTPUT_FILE remains. All functions renamed accordingly. 2) do_versions code for converting single-file output nodes into multi-file output nodes. If a Z buffer input is used, the node is made into a multilayer exr with two inputs. (see below). Also re-identifies multi-file output nodes with the CMP_NODE_OUTPUT_FILE type. 3) "Global" format is stored in node now. By default this overrides any per-socket settings. 4) Multilayer EXR output implemented. When M.EXR format is selected for node format, all socket format details are ignored. Socket names are used for layer names. 5) Input buffer types are used as-is when possible, i.e. stored as B/W, RGB or RGBA. In regular file output the format dictates the number of actual channels, so the CompBuf is typechecked to the right type first. For multilayer EXR the number of channels is more flexible, so an input buffer will store only the channels it actually uses. 6) The editor socket type is updated from linked sockets as an indicator of the actual data written to files. This may not be totally accurate for regular file output though, due to restrictions of format setting.
2012-02-29Code Cleanup: remove non existing function declarations.Campbell Barton
added some missing functions too - which are not used yep but should be there for api completeness. * CDDM_set_mloop * CDDM_set_mpoly * BLI_mempool_count
2012-02-28move bmesh wiki docs into bmesh header and update doxygen.Campbell Barton
also have doxygen ignore *.py files and fix some warnings.