finalToon
Reviewed by David Duberman
Believe it or don't, 3D graphics is no longer the gee-whiz-bang wunderkind we
in the biz have always assumed to be. After all, the Disney movie Tron came out
over 20 years ago. Since then, we've had a number of pure-CGI movies, and nowadays
a game ain't nothin' if it's not in full 3D with real-time cut-scenes. So the
public is getting a little jaded about the whole 3D thing, which is why developers
and artists have been casting about for new ways to render, to freshen up the
look of the graphics. The latest rage is cel shading, which is actually a step
away from photo-realism, but has been used to produce fascinating looks for PlayStation2
games like Sly Cooper and Wild Arms 3, among others; perhaps most notably, in
the latest Zelda for Nintendo.
Cel shading, at bottom, is nothing but computer-generated emulation of classical
hand-drawn animation as it was done in the early-to-mid twentieth century at
studios like Disney and Warner Bros. It has a low-tech look, but is not that
easy to achieve with algorithms. The latest version of 3ds max comes with a toon
shader called Ink 'n Paint, but it lacks versatility. If you're serious about
giving your images and animations a hand-drawn look, consider finalToon, a spiffy
new max plug-in from German developer Cebas. It's one of the new Discreet-certified
3ds max plug-ins distributed by Turbo Squid.
finalToon takes the form of a Rendering Effect; just turn it on, and everything
in your scene is rendered with the default line styles and normal surfaces. If
you'd like to use cel shading on surfaces instead, you can apply the included
finalToon material. The material also lets you specify line styles locally, so
you can have an unlimited number of line styles per scene.
finalToon gives you six different line types, with a visible and hidden version
of each. The most important type is the Fold line, an object edge that shares
one front-side and one back-side face. Essentially, fold lines define the object
outline. Perhaps the next most important is the Crease line, which is an edge
that doesn't qualify as a fold that's shared by two faces with different smoothing
groups. The smoothing must be unique; that is, they faces can't share any groups.
An example of this would be the foremost three edges of a box viewed at an oblique
angle; you can see both faces attached to each of these edges, so they don't
qualify as Fold lines.
Next is the Intersection line, which occurs where two objects intersect. These
lines are calculated; there need not be any geometry edges at intersections.
You can also have lines between areas with different material IDs, and along
visible edges. Lastly, you can specify that finalToon should draw lines between
faces that meet at an angle within a certain range. For example, you can have
it draw lines only between faces that meet at an angle between 0 to 45 degrees.
The visible lines are those facing the camera; the hidden ones are, of course,
those facing away. By assigning a different line style to each, you can achieve
a virtually endless variety of effects.
And boy oh boy, does finalToon have line styles. For each style, you can assign
a specific color, or use the color defined by the object's material's Ambient,
Diffuse, or Specular properties. It uses only the actual colors, not any coloring
from maps assigned to those properties in the material. Also, if the object uses
a compound material such as Multi/Sub-Object, it'll use the coloring only from
sub-material #1.
However, you can assign maps directly to any combination of a line style's color,
shadow, thickness, opacity, and bumpiness. For example, you can use max's Falloff
map to make an object's outline thinner where it's closest to a light source.
Unfortunately, finalToon doesn't let you drag a map from the Material Editor
to its map buttons; you have go the indirect route by clicking a button and choosing
the map from the Material/Map Browser.
When you use a material color as the line color, it's nice that you can change
the brightness and opacity, to differentiate the line coloring from that of the
surface. You can also set the end shape to give rounded or squared-off corners,
and set a pattern such as dashed, dotted, and various combinations. And, of course,
you can set the line thickness and scale of the pattern.
But that's not all by a long shot. For each style, you can define all of the
above parameters separately for lines that line in a shadowed area. You can also
apply random noise to each line style in three different ways: thickness, opacity,
and the direction the line is drawn (gives a wavy line). And for each of these,
you can set the amount of noise applied, the frequency, and, if you want the
noise to vary during an animation, the phase.
But wait, there's more! And this is some very, very cool stuff. For the ultimate
in hand-drawn verisimilitude, finalToon provides five 2D Effect settings. Extend
draws lines a little farther at corners, and lets you set the amount. Concave
creates lines that taper from thin to thick and back again. You can set the amount
of tapering, and the angle lets you specify where the tapering occurs. Slash
Pen is a sophisticated, somewhat subtle effect that emulates a rectangular marker
pen, drawing vertical lines at a different thickness from horizontal lines. Thickness
Pressure varies line thickness by distance, and Opacity Pressure varies line
opacity by distance; both have user-settable distance ranges, and share a pair
of Falloff Direction options: right/left and up/down. Similar to the latter two,
but producing a more subtle effect, are the 3D Effect options Thickness Cue Depth
and Opacity Cue Depth, also each with their own distance range settings. Lastly,
the 2D, 3D, and noise effects share a Step setting that controls the resolution
at which the effects are applied. For convenience, the setting appears in all
three rollouts, which might also be a bit confusing, but changing one changes
all three.
With the 3D effects, you can set line thickness to decrease as the distance from
the camera increases, but you must set both near and far distances in absolute
terms. So for maximum value, you pretty much have to measure the distances first.
These values are animatable, but it would be nice if you could do it dynamically,
so that objects farthest from the camera use the thinnest lines, and those that
are closest use the thickest. And for special effects, the software should let
you reverse the effect, so line thickness increases with distance.
The finalToon material is fairly straightforward. As with Ink 'n Paint, you can
define different colors or maps to lit and shadowed/shaded areas, as well as
to specular highlights. You can set each area's relative brightness, and specify
relative sizes to highlight and shadowed areas. The latter setting doesn't affect
shadow size; just areas that aren't directly lit. You can also set the amount
of blending between shadowed and lit areas, as well as between lit areas and
highlights. More blending causes a smoother transition. In addition, you can
combine 2D and 3D shading by mixing in shading from a 3ds max material.
But the finalToon material truly starts to shine when you apply one of the plug-in's
most valuable features: the finalToon Hatching map. This map can be used in any
max material, but it's best with the finalToon material, where you can specify
different hatching setups for the three differently lit areas. As its name implies,
the Hatching map simulates the drawing method in which shading is produced by
repeated lines, whether parallel or crossed. You use an image file, or "stroke,"
to define the line; a number of samples come with the software. You can scale
the stroke bitmap, and use its own coloring, or specify a color or map. In the
latter case, the map is applied across the strokes, rather than on a per-stroke
basis; very nice. The map has a wealth of additional settings, such as the option
to cross strokes, two ways of blending the strokes into the background material,
and different methods for determining how lighting interacts with the texture.
If you've ever wanted to produce a genuinely hand-sketched look from your renderings,
this will do it.
finalToon also comes with its own version of 3ds max's Flat Mirror, Reflect/Refract,
and Thin Wall Refraction maps, which work the same as those that come with the
original program, but are compatible with the finalToon Rendering Effect. While
not essential, these are very cool, and add a lot of versatility to the range
of imagery you can produce with the software. Also, if you need vector-based
output, finalToon can save rendered images in Flash (SWF) and Adobe Illustrator
(AI) formats.
Conclusion
You can probably tell that I liked finalToon. It's difficult to imagine how it
could be improved, other than increasing the compatibility with the interactive
renderer. With so many options, it's important to be able to change any parameter
and get instant feedback without having to invoke a render. Also, I discovered
an incompatibility with max's Double Sided material, in which finalToon used
as sub-materials didn't seem to be able to render locally defined lines. But
overall, finalToon shines as a wonderful new way to get more out of rendering
with max.
http://www.finaltoon.com
TurboSquid
|