テンプレート:Release Notes/2.46/Compositing Nodes
Juho
Curve Selection Tool Refactor: This commit refactors curve selection system to use certain curve selections functions that encapsulate setting of selection flags. New function to select adjacent control points was introduced too. Refactoring made it possible to simplify certain existing selection functions quite a bit. New functionality was delivered as well. Select more/less works now with NURBS as expected. Also two new curve selection functions were added: Select Every Nth and Select Random.
See http://wiki.blender.org/index.php/BlenderDev/Curve_Selection_Tools for further information.
"Render to image editor" to render to Buttons Window as the last alternative: "Render to image editor" renders to Buttons Window only if no other suitable windows are available. Other window types are prioritized before Buttons Window.
"Combine RGB" and "Separate RGB" material nodes: These nodes allow the user to separate and combine RGB color channels as in the composite node editor. However they don't contain Alpha channel as it is treated separately in case of material nodes. "Combine RGB" allows the user to use values beyond standard float range ([0.0, 1.0]) if value input node is used to feed the value to it.
Autocompletion to Geometry input node: This commit adds autocompletion and "red alert" feature to text input fields (UV and VCol) of the Geometry material input node. The functionality is similar to one found in UV part of the "Map Input" panel found in Material buttons context of the Buttons Window.
Hue Saturation Value node - port to material node system
This commit ports Hue Saturation Value node to the material node system.
Unlike in composite version, each value is an input. Composite node version
will be updated later to use the same scheme.
Crop Compositing Node:
This commit adds a new node, crop, to the compositor. This node can be used to crop input image. It has two modes of operation. It can either crop image size (Crop Image Size option) or crop while retaining original size of the image. This latter mode can be used to preview the crop.
Use X1, Y1, X2, Y2 controls to manage the area to be cropped.
Note that I added a check for image preview min and max values to node_update. This is because it could give inappropriate values in certain cases when Crop Image Size option was toggled (values such as x1=0, y1=0, x2=60, y2=0 would result in eternal loop due to bad min and max (min bigger than max!)). The check makes sure that min and max values are always valid.
Toggle links tool for Node Editor
This commit adds a new tool, Toggle Links, to the node editor. This tool
allows the user to toggle the status (linked/not linked) between desired
sockets. The tool can be used either by using the f key or the menus.
This functionality is analogue to one found in object editing modes except for its additional toggle functionality.
To use this tool, the user has to first select an input and an output socket. Selecting is done by clicking with right mouse button on a socket. After the tool has been invoked, the link between those two sockets is toggled. The result may vary based on existing linkage.
There can be only one input and one output selected at maximum in a node tree. This means that if the user selects a socket while one of the same type is already selected, the old one will be deselected.
The tool complements the current way of connecting nodes. One possible use for it is to use it to review output of nodes by using a viewer node. Just select wanted input socket of a viewer node, set it visible and use selection of an output socket in conjuction with f key to show the output in the viewer node. Select another output and hit f to see its output and so on.
Directional Blur Node
Directional Blur node allows the users to do various blur operations on the input
image. It essentially offers three different kind of ways of blurring in one node.
It is possible to blur using a certain direction, spin and zoom. These three ways
can be used in conjunction.
The node contains following controls:
- Iterations, Wrap
- Center: X, Y
- Distance, Angle
- Spin
- Zoom
Iterations is used to determine the smoothness of the result. The more iterations, the smoother result. Low values are good for preview.
Wrap means that the image is wrapped as if it was tiled on both x and y directions. To see better what this means, try it with spin for instance.
Center values (X and Y) determine the location which is used as a pivot point for the operations. It is center (0.5) of the image by default.
Distance and angle are used to adjust directional blur. The result can be described as a sweep that varies based on given distance (bigger distance, longer sweep) and angle. Angle is given in degrees.
Spin produces rotating blur based on given angle. Yet again it is in degrees. Also negative values work.
Zoom causes the image to be zoomed towards set center point (Center values).
Thanks to Alfredo de Greef (eeshlo) for contribution.
Possible development ideas:
- Make an algorithm to extend image in case spin is used. Extend would temporarily
change the size of the canvas of the input image. Canvas would be filled based on colors on the edges of the input image. After the blur operation has been done, the image would be cropped back to normal size. The advantage of this would be nicer result of spin (no problems with image size) on a computational cost.
- Make values animatable. This is something that is better solved on more general
level. ("everything is animatable" paradigm)
- Provide an option to calculate automatic value for iterations. A good value that
produces a smooth result could be calculated based on direction deltas. This would be useful in conjuction of animatable values.
Bilateral Blur Node
Bilateral Blur node allows the user to blur images while retaining their
sharp edges. Blurring can be controlled by following controls:
- Iterations
- Color Sigma
- Space Sigma
Also image input to blur and a determinator image is provided. The node produces a blurred image as its output.
The more iterations are provided, the smoother the result. Use color and space sigmas to control the amount of blur. One way to use the determinator input is to feed a mix (add) of Z and normal passes to it.
Examples of usage: Ambient Occlusion smoothing - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_01.blend Blurry Refraction - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_02.blend Smoothed shadows and smoothed Ambient Occlusion combined - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_03.blend
If you check out the examples, render the image and alter the values to see how they affect.
More information about the algorithm can be found at http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html .
Thanks to Vilem Novak for contributing the patch.
Conversion of "Toggle Link" tool to "Make Link"
This commit alters the behaviour of "Toggle Link" tool found in the node
editor so that it only makes link between selected sockets. Links cannot
be deleted by using the tool again as before. Instead deleting links can
be done by using the old method (drag with lmb).
The delete functionality may require further investigation to see if it should be improved.
Black and White level inputs to RGB Curves compositing node
This commit adds possibility to define black and white level of the
mapping curve of the RGB Curves node. This functionality is exactly
the same found in the Curves tool of the UV/Image Editor. It can be
used to extract wanted color ranges out of the input easily.
Thanks to Björn C. Schaefer for contribution!
Blur Node to support Relative (percent) values
This commit makes it possible to use relative values when using a Blur node. There
is a new toggle in the node that can be used to enable the feature.
Thanks to David Millan Escriva for contribution!
Custom Names for Nodes
This commit makes it possible to add a custom name to a node. The feature can be
accessed either by using a menu or shortcut ctrl-r. It currently works only when
a single node is selected. Invoking the feature gives a popup menu in which a new
name can be entered. If the given name is not empty, it will be shown like
"(myCustomName) NodeName" in the node header.
This feature is particularly useful when documenting complex node setups.
I also fixed the size of blur node. It was too short before due to my previous commit.
Thanks to David Millan Escriva for contribution!
Minor changes to node rename tool
Rename was changed to work on the last selected node. Also size of a couple of
character arrays was changed to avoid buffer overflows.
Custom name shows up now just fine in group header in case it is being edited as it did not before.