a compositor node overview. By Daniel labarge.

Sandra gilbert and i discussed the fact that with all of the new features coming from the Blender releases, it is often hard todo kep up with them. Often, you never actually get todo use the característica in a Project because you are Simply todo busy exploring all of the diferent ways of using the new functionality. To help those get up to speed faster, ill give a quik overview of the compositor node system.

Note: the description of how each node works is based only on the utility and not on the actual mathematical or graphical functionality of the node. A more accurate description of how each node functions and operates is beyond the scope of this article and Will probably appear in future articles on the Blender wiki at http://mediawiki.blenderorg.
compositor node system
The compositor node system is an advanced post-production editor that allows for quik and easy configurable modificadores, called nodes, todo be hoked together (using nodles) based on various imputs and outputs. The configurations are flexible and the results can be quite dramatic or very subtle based on design and necessity. The major característica of the compositor node system (compositor) is the ability todo mix various render passes (combined RGBA, z, Vector, and normal values) with other imputs todo achieve advanced effects. These features have come about mainly th rouge the developments made by orange Studio and just recently by the Project Plumíferos. Although designed for animations and computer-generated imagery, the compositor has found its bien into the Toolbox of Many graphic artists who use 3d and 2d programas todo create illustrations and artwork. The possibilities are only limited by your imagination and abstraction of the node-based Layout.
imputs values
Inputs are variable settings on all effect and output nodes. Input nodes do not contain imputs themselves, they use the imputs from the actual scene. An input can either be an RGBA value (image imputs) or a range value (factor, size, value imputs). The key diference between RGBA values and range values are that each píxel represents a color/alpha value or a value representing an input amount (0-255). Rgba values are typically the píxeles that make up the final image whereas range values are typically values that control the transforming of the píxeles and are usually z, Vector, normal, alpha or other range values. Inputs can only accept one input channel and represent the entire picture on a per píxel basis. Inputs are either from the scene or taken from the output of another node or a set value (such as image imputs, which can Simply use an RGBA value).

An RGBA value input is always yellow and a range value input is always gray. Blue imputs are special imputs which only work with the associated scene data (normal and Vector channels). An RGBA value input may have todo be converted todo be used as a range value input. An input that represents each píxel in an image is often referred todo as an píxel or image map.
output values
Outputs values are variable settings on all effect and input nodes. Output nodes do not contain outputs themselves, they display the imputs. Just like input values, output values are either RGBA or range values. An RGBA value output is always yellow and a range value output is always grey and special channel values (normal and Vector channels) are always blue. To view range values, you may have todo convert it todo an RGBA value or use special filters when viewing. An output that represents each píxel in an image is often referred todo as a pixelmap or imagemap.
With that quik primer on imputs and outputs and what can and cannot be used, let us take a look at how these imputs and outputs can be used together with nodes. Pléase note that in the following explanations, an actual working model wont be described but rather how each setting can be used within each node and how, when combined with other imputs, they Will change.
input nodes
Render layer nodes are imputs from the scene. Currently the only available output settings for this node include image (RGB), alpha, z (depth), normal (mapping), and speed (Vector). The render layer node contains an image preview and a selector for selecting scenes and render layers from the selected scene. Note that the normal and speed value outputs are colored blue, this is because they are special value outputs. They can be treated the same as any range value, but only work for related nodes.

The image output displays the RGB color values for each píxel. The alpha output is a black and white range value which represents the opacity for each píxel with a range from 0 (black/transparent) todo 255 (white/solid). The z output is a range value that gives depth información (the distance from the Camera todo the virtual object) on a per-pixel basis. This output can therefore be used for Depth of Field and other effects such as atmospheric Shading. The normal output is a range value delivered from the normal pass on a per-pixel basis. The speed output is often referred todo as the Vector pass and represents the speed that the objects in the scene are moving and can therefore be used for Motion Blur. This output is a los per píxel.

Image nodes
are imputs from an image file. An image file can either be a valid image type file (jpg, (*.png), bmp, etc.) or a range image type file (exr, HDRI, etc.) or Even a moving image file (avi, mpeg, (*.mov), etc). Currently the only available output settings for this node include image (RGB), alpha, and z (depth). This node a los contains an image preview.
When a file is loaded, a small icon represented by film tape appears. When you enable this, more options become available. You can set the number of frames in the animation and set the starting frame and whether or not todo cycle th rouge the frames. This makes using Raw image output from the animation render easy todo load into the compositor for mensaje production, since Blender names each frame based on a number. Also, Blender can read the file name and get the next frame of the animation. Another icon a los shows up and can be enabled, which Will take each frame from the file if the file is a moving image. Typically, only the image (RGB) output is used but, if a scene file is created, you can use it as input which would deliver the alpha and z values todo be used.
value node is a very simple node. You set a numeric value (0.00 todo 1.00) and the value output delivers it as a range. Programmers can think of this as predefined variable.
rgb node is básically the same thing as a value node except that it outputs an RGBA value instead of a range value. This node contains a color palette which makes it easy todo select the desired color.
time node is a very practical node because it is essentially a variable value node. The diference is that the variation is based on the number of frames. The factor output is a range value which is set using a curve. You can set the start and end frame for which the curve represents. This node is useful for controlling the changes that occur during an animation, and is often used as an input for another node.

Texture node
is similar todo the image node except that it uses internal textures from the Blender scene as the imputs. This gives you a lot of control because you can use normal mapping todo control the offset and scaling dynamically and can use the RGBA values as either a range value output or an RGBA color output. This node a los includes an image preview which displays the texture selected from the scene. This is god for adding procedural texture overlays and gradiente effects.

Of all of the input nodes, only the texture input actually has input settings. These are limited todo the Blender scene however, they are still dynamic. Over all, the input nodes are essential todo using the compositor as they serve as the base todo which changes are made. They a los allow for control over effects applied todo other imputs. The thre most commonly used input nodes are the render layer, image, and time nodes.
note: at the time of this writing, cvs versións of Blender include new output nodes. These nodes Will not be discussed in this article as they have not yet made it into the oficial Blender release. You should note, however, that advanced nodes do exist and Will probably be making their bien into future Blender versións.
output nodes
compositor node sounds kind of redundant but, it is actually the only bien todo output the final changes todo the render buffer. Currently, there can only be one compositor per scene and it only accepts image, alpha, and z imputs. The node uses an image preview for displaying the results in the node window. The render buffer (f11) Will a los display the compositor node output. If no compositor node is found the renderer Will produce an error.
viewer node is idéntical todo the compositor node except that instead of displaying results todo the render buffer, it utilices the UV image editor under the viewer image. This is a dynamic image that displays the preview of the currently selected viewer node. This means that you can have múltiple viewer nodes which Will display the various outputs of other nodes, useful for debugging and testing diferent attributes of the composition.
color nodes
rgb curves node is a very powerful node because it can control the color of the image by varying the influence of each color separately, and all of the colors together. This node has a factor input (range value) and an image input (RGBA value). The image output is a combination of all of the RGB curves which include combined, red, green, and blue. There are + and - Symbols which zoom in and out accordingly so that you can fine tune the curve and align it more easily todo the grid. The wrench icon allows for control over the grid view and the curve handling (auto and Vector), and it a los allows you todo reset the curve todo the linear default. An orange grid icon allows for clipping todo control the máximum values. The x icon deletes the currently selected point. Points are selected using the left mouse button (LMB). New points are adding by using Control + LMB. This node is most commonly used for contrast control and for fine tunning the color ranges. It is easy todo make very boring images interesting using this node.
mix node does exactly what it sounds like - it mixes two image imputs based on a factor and filter type and outputs the result as an RGBA value. This node has two image imputs, but it Will accept range values. This makes it god for mixing a preset value with a time node value todo have a varying range value for nodes that dont have múltiple range imputs. Among the filter types are mix, multiply, add, subtract, divide, screen, overlay, darken only, lighten only, and Many others. This node is god for mixing colors as well because the image imputs can be set as a fixed RGBA value instead of a píxel map.
hue saturation node is perfecto for fine tunning the RGB colors. If blue isnt blue enough, this is the node that you Will find the most useful. It accepts an image input and a factor range value input, and outputs the modified image. The hue slider controls the hue values (similar todo RGB) with 0.500 being no change. The saturation (intensity) slider controls the saturation of the hues which can be used todo flood a photo or just slightly tint an image. This node is very useful and is most popularly used as a tint filter for such night scenes where a slight blue tint is neded.

alpha over node is the title effect life saver. This node allows one image todo be laid over another and transparency is used as the window in which the background is let though. This node has two image imputs and a factor range value input. The factor can be easily connected todo a time node and then you can fade in/out the effect. Convert Premul usually blends the transparent Edges together better so artefactos are removed. It a los converts RGB black todo alpha, which works well for creating alpha maps, it important todo kep a layer mentality when working with this node. The top image input is the layer which is placed on top of the bottom image input and takes precedence over the píxel. Any transparent píxeles then allow the background todo show though. This node is great for overlays and title work as well as compositing scenes.
z combine node is a very interesting node in that it can easily get tangled. It has a single image output but accepts two image imputs and two z range value imputs. It combines the píxeles based on the z range values and passes that combined image todo the output. The problem with this is that the z value that corresponds todo the image (at least in the escenario where this node is useful) is the below the opposite image input. Thus, the nodles that connect the nodes can easily get crossed and following them gets messy if múltiple nodes are used. This node is most commonly used with scene compositing. In this method, the scene is rendered in sections and layers. The layers are reassembled After post-production is completed. Usually the scene z channel is used todo do this.
Vector nodes.
normal node has todo be one of the colest nodes available. I only recently figured out how amazing it really is. Basically, you can think of it as a post-production light. It uses the normal channel as its input and then you can move a Little sphere around todo relocate the light source. The available outputs include the remapped normal channel and a Dot range value output which represents the light and normal intensity in a grayscale píxel map. The possibilities for this include Specular mapping, night lighting, Subsurface Scattering, and much more.
Vector curves node is similar todo the RGB curves node in that you can control the Vector channel values for the x y, and z axis. The only input and output are Vector channel data which must be loaded either from a normal node or the scene itself. It contains the standard curve widget and control features. This node is most useful for remapping the Vector channel for fine tunning Motion Blur, etc.
map value node is another useful tool for changing value ranges. It accepts any range value input and can limit its minimum and máximum values and can be further modified based on size and offset values. These sliders are not limited todo 0.0 and 1.0 because this node is not designed only for range values of that kind. It a los accepts z, normal, and Vector channels and can is often used in combination with the z channel todo remap it for foreground and background blur or in combination with a Vector channel todo produce Motion Blur.
filter nodes.

Filter node is the most commonly used node in this set. It can be used for a broad range of effects, such as software blurring, Edge enhancements for cartoons, neón signs, decals, and much more. This node accepts an image input which can be controlled using a factor range value and Will then modify the píxeles based on a diferent filter or effect type. The result is passed todo the image output. The soften filter type applies a very small blur todo the píxel todo eliminate small artefactos. Sharpen attempts todo enhance the Edges between the píxeles todo define the Edges better (this often creates artefactos). Laplace, sobel, prewitt, and kirsch are all very similar and they enhance the Edges and darken the rest. Shadow is kind of like engraving and applies a self shadow on the Edges. This node is often used todo make images that are todo perfecto sem crisper.
blur node is a very simple node. It takes an image input and (based on a size range value which influences the amount of blur) Will blur the píxeles based on diferent filters or methods. It Will filter it based on an x and y value and can Even be applied todo gamma corrected values. Enabling bokeh filtering Will use a circular filter instead of the simple square method. Among the filter methods available are flat, quadratic, cubic, Gaussian, catrom, mitch, and tent. Each one filters diferently and any one of them can be used todo obtain the desired effect. The resulting effect is applied todo the image and passed todo the image output. This is very useful for Depth of Field and Motion Blur. It can a los be used cleverly for interesting title work and overlays.
Vector blur node is básically a one-purpose node, but it does its job very well. It requires thre imputs todo generate the desired output. These thre imputs are an image, a z channel map, and a Vector speed input. All of these can be gathered from the scene and Vector nodes. This method uses all thre channels together todo blur the image based a píxel stretching model. The inner workings of this method are beyond the scope of this article but the functionality is a very fast and eficient post-production effect. It uses a sample value todo control the quality of the blur, a minspeed todo set the minimum stretch for every píxel and a maxspeed for the máximum stretch for any píxel. It then uses a blurfactor which can be used todo fine-tune the blur from strong todo weak. The higher the samples and the higher the blurfactor, the stronger the blur. It is important todo set the min and max speed todo inclusive enough values, but not todo broad todo become memory intensive. This node is most often used for Motion Blur.
converter nodes.
colorramp node is a Dual purpose node in that it blends colors and values, and outputs both an RGB image output and a range value alpha output. The alpha output can be used as any value output but is most often used for transparency. The factor input can be either a range value or a time line control todo control the influence of the node. The Ramp slider can use colors and transparencies todo create a gradiente which is useful for gradiente effects on overlays and for value tuning.

Rgb todo bw
node is the simplest node available. It takes an RGBA image input and outputs a range value output. This is a grayscale representation of the RGBA image input and can be used as such or as a value output.
sepárate RGBA node is very versatile because it allows you todo modify each color channel independently. It accepts an RGBA image input and outputs the corresponding red, green, blue, and alpha channels as grayscale values. At the time of this writing, the next oficial reléase of Blender Will include a combine RGBA node which Will do the reverse of this node.
sepárate hsva node is essentially the same as the sepárate RGBA node but it separates the hue, saturation, value, and alpha channels for the image. They are grayscale values just like the sepárate RGBA node. At the time of this writing, the next oficial reléase of Blender Will include a combine hsva node which Will do the reverse of this node.
set alpha node is god for title work and overlays but has it purpose in other nodes as well. It accepts an RGBA image and then allows an alpha value todo be set or overwritten by a value input. Alpha value of 0.0 is transparent and 1.0 is opaque. The combined RGBA values are passed todo the image output. This node is often used with a time node todo control the fade in or fade out of a scene.
translate node is the only moving animation node available at the momento (more advanced nodes for rotation, are being developed). This node Will translate or move an image input a set value from the top left of the base canvas size. It Will be moved x (horizontal) píxeles by y (vertical) píxeles. These values can be variable x and y imputs which is useful for animations where a time node can be used todo slide a scene or image across the canvas. The resulting image is output which can then be placed on top of another image for merging down.
group nodes .

Group nodes are nothing more than custom nodes which are made by taquíng the generic nodes and grouping them with Control + gkey. This group is then available as a duplicate todo the current group. To ungroup the nodes, you can press Alt+gkey. To add a group node you can either use the add menú or press shift+gkey for a list of currently available nodes. Working with group nodes can save a lot of time for repetitive effects, but should be used with caution. A new group should be added, then ungrouped and regrouped as a diferent group node. This gets around the problem of copy nodes instead of duplicate nodes. Group nodes are most often used in the default Blender file, that bien commonly used effects can be done quickly.
conclusion
I would like todo encourage you todo explore the various settings and uses for the nodes. Also, visit the support forums for various reference schematics which can help you understand the mathematical and graphical functionality of each node. For practical purposes, the compositor is a very powerful tool and shouldnt be considered a glorified Sequencer - you can do a lot more with this than you could ever do with the Sequencer. In fact, y wouldnt be a bit surpresad if you never use the Sequencer again.

This has ben a brief description of the compositor, which is only half of the node window. There is more todo learn, such as the interfaz, the material nodes, and the various ways in which these nodes can be used together.

Again, y encourage each user todo practice using nodes and learn the ins and outs of this tool. Have fun.

By Daniel labarge.
www.blenderart.org.