A. Digital Compositing Software - Tools and Features - The Art and Science of Digital Compositing, 2nd Edition
A. Digital Compositing Software - Tools and Features - The Art and Science of Digital Compositing, 2nd Edition
A. Digital Compositing Software - Tools and Features - The Art and Science of Digital Compositing, 2nd Edition
Digital Compositing
Software: Tools and Features
The purpose of the list given in this appendix is twofold. First, if you are al‐
ready working with compositing software, it may help you to identify and un‐
derstand tools within that package which you were unfamiliar with. We have
tried to list features that are common to a variety of different packages, and to
give a brief description of each. A more detailed description of certain features
and operators can be found throughout the body of this book.
Second, this list can be used as a guide for evaluating and comparing software
that you have never used but possibly intend to purchase or recommend.
Given the wide and expanding variety of digital compositing tools that are
available, it can be difficult to make a reasonable comparison without having
a common baseline to reference. Of course, not all compositing packages will
have all the features listed here. Many packages may have additional features
that are not listed here. Please understand that the presence or absence of cer‐
tain features does not necessarily determine whether the package will be use‐
ful. Only by evaluating your specific needs can you determine whether a par‐
ticular package is suitable to the task. You may even find that a combination of
several different tools will be needed to cover all the possible scenarios that
you need to address. In general, you shouldn’t hesitate to pass over a poorly
designed “all-in-one” package in favor of a group of well-designed packages
that can be used in conjunction with one another effectively.
This appendix will try not only to list a number of different potential features,
but also to give an idea about what a reasonably good implementation of that
feature might include. Don’t use this as a “yes or no” checklist, but instead try
to examine the features of the package in question to understand how com‐
plete the implementation might be.
Finally, remember the importance of the overall design of the package’s user
interface. This is probably the most difficult component of a package to evalu‐
ate, since it requires spending time with the product to understand the partic‐
ular paradigm. It is something that cannot be dealt with in a simple features
list, but absolutely should not be ignored. Chapter 9 goes into greater detail
about certain features and methodologies that are relevant to this topic.
The categorization of the features in this list is rather arbitrary, as is the nam‐
ing of the tools themselves. Some of the features described below are named
fairly consistently throughout the industry but others vary wildly. Even (per‐
haps especially) the most common terms, such as “Brightness,” will have a dif‐
ferent underlying algorithm depending on the software used. If you are using
this list to help evaluate the functionality of a particular piece of software, you
may need to explore a little bit before you can accurately determine whether,
and to what extent, the software in question supports a specific feature.
Remember too that many operators can be built as a combination of other op‐
erators. The list here consists primarily of tools that either cannot be built
from other tools or are common enough to warrant inclusion. Most composit‐
ing systems will consolidate some of the operators that are mentioned here
into larger operators that can perform multiple functions instead of providing
them as individual “atomic” tools.
Color Corrections
On many systems certain color corrections can be applied not only to the en‐
tire image, but can also be limited so that they affect only to certain ranges of
image brightness, generally broken into the categories of Shadows, Midtones,
and Highlights.
In addition to the specific operations listed below, a good compositing system
would ideally include the ability to use arbitrary mathematical expressions to
manipulate color via a robust expression language.
Add: Add a constant value to each pixel in an image. Also known as “Lift.”
Sometimes known as “Brightness.”
Compress: Map a range of color values in an image into a new, smaller range.
Expand: Map a range of color values in an image into a new, larger range.
HSV Modifications: Modify an image based on its hue, saturation, and value.
Hue Rotation: Rotate the hue of an image through the color spectrum.
Invert: Invert the value of each pixel in an image, producing a negative of the
image.
Matte Divide: Divide the RGB channels of an image by its alpha channel.
Matte Multiply: Multiply the RGB channels of an image by its alpha channel.
Filters
Blur: Apply some type of blurring algorithm. The user should be able to
choose different horizontal and vertical blur values.
Convolve: Convolve an image with an arbitrary filter. The size of the kernel
should be user-definable as well.
Dilate: Increase the coverage of bright areas in the image, while decreasing
the dark areas. Generally used primarily for mask manipulations.
Emboss: Create a new image that appears to have varying height based on the
luminance values in the source image.
Erode: Decrease the coverage of bright areas in the image, while increasing
the dark areas. Generally used primarily for mask manipulations.
Grain: Add simulated film grain to an image. You should either be able to
specify a variety of parameters that describe grain characteristics (such as
grain size, density, luminance and chrominance variance, etc.), to choose from
a list of different film stocks that you wish to emulate, or to sample and mimic
grain from an existing image.
Median: Replace the value of each pixel in an image by the median value of
the neighboring pixels.
Radial Blur: Blur or smear an image radially about a certain point, ideally
with control over the fall-off as a function of distance from the center point.
For any transformation, portions of an image that are moved out of frame
should not be permanently cropped. Instead, the data should be available for
use by subsequent transformations. Optionally, you should also be able to
specify whether you wish any portion of the image that moves out of frame to
wrap around and reenter the frame on the opposite side.
The user should be able to choose the type of filtering (resampling) that is used
for many transformations. There are times when one may wish to choose dif‐
ferent filtering along the vertical and horizontal axes.
Crop: Remove a portion of an image that lies outside a specific boundary, ei‐
ther by specifying two corners that define a rectangular region or by specify‐
ing a single point and the resolution of the desired result.
Fit: Scale an image to fit within a given resolution, usually with the option of
maintaining the aspect ratio of the original image.
Pan: Reposition an image within a given frame or in terms of its distance from
camera.
Pin, Cornerpin: Distort an image by moving four arbitrary points within the
image to four new positions.
Rotate: Rotate an image by specifying the center of rotation and the amount
of rotation in any of the x-, y-, and z-axes.
Shear: Shear an image around a given point, specifying shear amounts for
both the x- and y-axes.
Image Combination
The image-combination tools are described using the same conventions that
were discussed in Chapter 5. Thus, A and B are considered the two source im‐
ages. If there is a need to specify certain channels in an image explicitly, they
will be indicated with subscripts; otherwise it is assumed that the operation
will be performed on all four channels of an image equally. All images are as‐
sumed to be four-channel premulti-plied images.
Mix: Combine two images by using a weighted pixel average (MV × A) + [(1 —
MV) × B], where MV is the mixing value.
Atop: Place the foreground over the background, but only inside the back‐
ground alpha. Thus, A atop B is really the same as (A in BA) over B.
In: Retain the foreground only within the background’s matte. Thus, A in B is
the same as A × BA.
Max: Use the maximum value of the equivalent pixel location in the two
source images.
Min: Use the minimum value of the equivalent pixel location in the two source
images.
Out: Retain the foreground only outside of the background’s matte. Thus, A
out B (or “A held out by B”) is the same as A × (1 — BA).
Screen: Invert both images, multiply them together, and then invert the result.
1 — [(1 — A) × (1 — B)].
Under: Place the background under the foreground using the foreground al‐
pha. Thus, A under B is the same as B over A.
Xor: Retain both source images only where their mattes do not overlap. A × (1
— BA) + B × (1 − AA).
Z-Compositing: Choose the resulting pixel from either source image by com‐
paring the Z-depth values for each image.
Field Controls
Interlace: Merge two images into a new image by choosing alternating lines
from each image.
Deinterlace: Separate a single image into two new images, one containing
only the even-numbered lines from the original image and one containing
only the odd-numbered lines.
Matte Generation
Keyframing: The ability to set specific “key” frames for a set of parameters
and have the system create values for the in-between frames based on a vari‐
ety of interpolation methods.
In addition to tools for dealing with the timing of animation parameters, there
also needs to be tools for retiming actual image sequences. Typically these
would include the ability to drop or duplicate frames, to average frames to‐
gether, or to create completely new frames via optical flow techniques. There
should also be the ability to perform the standard film/video conversions
known as Pullup and Pulldown as described in Chapter 10.
Image Generation
Particle system: Many compositing systems now include the ability to simu‐
late a limited set of natural phenomenon (smoke, dust, rain, fire) via a set of
procedural effects tools.
Tracking
Multiple Point: The ability to track several points at the same time.
Control
You should be able to control and limit how a particular operator will be ap‐
plied to an image. Various control methods include:
Other
Finally, there are a number of additional features that most compositing pack‐
ages should support. These include the following:
File Format Independence: Support for reading and writing a wide variety of
image file formats, such as those listed in Appendix C.
Extensibility: The ability to add functionality to the package via the use of
macros, plug-ins, and so forth.
Optimization: Automated tools that can analyze and optimize complex com‐
positing scripts.
Scalability: The ability to create complex scripts that define large hierarchical
compositing processes while still maintaining reasonable user interactivity.
Internal Accuracy: The ability to process data at higher bit depths. Minimally
16 bits per channel but really there should be full support for a floating-point
workflow that can maintain pixel values outside the range 0–1.
HDR support: Tools should be aware of high dynamic range images and be‐
have appropriately when working with these images.
Proxy Support: The ability to use low-resolution stand-ins for the image/se‐
quence in question, and the ability to prototype effects or scripts based on
these proxies.
Undo/Redo: A robust system for erasing or negating any changes that have re‐
cently been applied and then a way to reapply those changes if necessary. The
best systems will maintain a complete list of recent actions, making it easier to
see exactly what has occurred and allowing the user to undo multiple opera‐
tions in a single step.