Compositors.
At some point in the career of a lighting TD you'll have to deal with
them - wretched, arrogant, self-serving bottom-feeding vermin that they
are. You'll apprehensively bring your beautifully crafted shot to them
and they'll sneer at you with their crooked teeth and you'll gape in
horror as they butcher all your hours of blood, sweat and tears in a
scant few minutes before declaring the now travesty-of-a-render
'comped'...
OK - I'll
admit it - I've suffered abuse at the hands of incompetent, lazy or
just plain hateful compers more times than I care to remember but there
are some good ones out there - if you find one and they're the right
gender (hell, even if they're not) marry them immediately, for a good
comper is a match made in heaven for a CG artist - they'll take your
work and push it to unimagined heights of brilliance IF (and only if)
you give them the right material to work with.
"Tell us O mighty CG Gunslinger" I
hear you cry "How? How do we appease
these vengeful spirits that cause once flawless shots to atrophy into
mediocrity unless their peculiar and incessent demands are fulfilled?"
- Well, since you asked (and since I like being called 'O mighty CG
Gunslinger') I'm going to let you in on some secrets - Oh, and if after
reading this and following it to the letter they still ruin your shot, you
know what to do.
And use big bullets...
Pass what?
OK, let's start at the beginning:
What is a pass? When LightWave
(or indeed any 3D renderer) creates an image it writes data about that
image into buffers - there's a buffer for diffuse shading, specular
shading etc. These buffers are internally composited by the renderer to
create the final image. Some applications (namely Maya and XSI) have a
flexible enough architecture to allow access to all (or at least, most
of) these internal buffers and the ability to save them out
independently. LightWave 3D on the other hand allows you to write out
an uh... alpha channel.
OK, so that's a pass (of sorts) and alpha channel data can be
incredibly useful but if you just hand a rendered image and an alpha to
your compositor, it'll simply stare back at you, its soulless eyes
filled with loathing and contempt - it'll probably go to lunch (again)
shortly thereafter...
Luckily, LightWave users aren't forever damned to be ridiculed and
abused by compers - there are two widely-used LightWave plugins that
allow you to pull some useful passes out of LightWave - ASA
Buffer Saver and DStorm Buffer Saver. ASA is a rather more
complex beast so this guide will be using DStorm's Buffer Saver to
illustrate how to render passes out of LightWave that your compositor
can use.
"But" I hear you say "my render looks great! Why would I need
to render out passes?" - Good question - well, whilst your
render may indeed be wonderous and may quite possibly inspire
admiration and awe from your colleagues, your Director (or CG Producer)
will want to change
it. There may of course be nothing wrong with it but as we all know,
directors and producers get paid according to how many changes they
make. More changes = more moolah for them.
Rendering in passes allows your compositor to make pretty broad changes
to the shot - the more separated channels they have to play with, the
more they can do (and the happier they are). Quite often, saving out
passes can prevent you having to re-render your scene as major changes
and fixes (even changes to lighting) can be performed in comp. This is
a good thing as most TDs would rather be worrying about the shots
they've YET to render as opposed to the ones they stuck on the farm a
week ago.
Passes
in detail
Now you know why passes are useful, lets take a
closer look and see what you can render out and what you'd use it for...
The 'Beauty' Pass
Raw RGB
Diffuse (Shading)
multiplied into a 'Beauty Pass'
OK, I'll admit that the 'beauty'
pass isn't much of a looker - what it is,
is a combination of raw colour values
and diffuse shading. Buffer Saver can't render this out in one go -
you'll have to render out the Raw
RGB and Diffuse (Shading) passes -
these can be combined in either Photoshop
using 'Multiply' or by your compositor
to create what the industry calls a 'Beauty Pass'.
LightWave unfortunately has a big problem with outputting diffuse data
- the problem is that LightWave's
diffuse channel not only contains diffuse shading for the objects but
also any shadows rendered into the scene.
This is a pain-in-the-ass as compositors will want the diffuse shading
separated from the shadows (so they
can adjust either individually). Luckily, Buffer Saver can also output
a 'Shadow' pass (see below) which holds
just the shadow data - we can use the Shadow pass as a matte to remove
the shadows from the diffuse
(shading) pass as discussed later.
Reflection Pass
Here's a Reflection Pass - or
rather it isn't - sorta. A true
reflection pass requires that your reflective surfaces
have a 100% reflective shader - they reflect everything perfectly so
the compositor can easily vary the reflections
from 100% to 0%. The problem with this is that in LightWave, you'd have
to create a separate version of your
objects with that surface - you can do it if you want to (your
compositor may even smile at you) but this guide
is primarily concerned with getting useful passes out of your
(presumably ready-to-render) scene without you
having to create lots of variations of your models. The downside to
using your final surface reflection settings
(as above) is that all the comper can do is dial them down, they can't
make them more reflective. Bummer. Buffer Saver will write you
out a reflection pass by selecting Ref
RGB.
Ambient Occlusion Pass "Holy moly!" I hear you say "LightWave can write out an AO pass??"
- Uh... well, no. I wish it could but getting
AO out of LightWave is (for the time being at least) a hack. Not even a
hack really - it requires a re-render
of your scene. The SG_AmbOcc plugin is great at
creating fast, clean ambient occlusion, the problem is that
(like shadows) the data gets written into LightWave's diffuse channel.
As AO is an effect that your compositor
would very much like to be able to fine-tune (independently of shadows
and surface diffuse), the only way
to isolate that data is to render your scene again with SG_AmbOcc's
'Surface Override' switch on. At least
it's quick. Well, fairly
quick.
Shadow Pass Here's the Shadow Pass - yeah - I know I said
LightWave writes its shadow data into the diffuse buffer.
Bizarrely, it also writes a completely separate shadow buffer although
this is a good thing - we need
our shadows isolated anyway. Your compositor can (begrudgingly)
separate the two using the shadow
pass as a matte - you can do the same in Photohop by applying the
Shadow pass to the Diffuse (Shading)
using a 'Color Dodge'. Check Shadow
in Buffer Saver to save this pass out.
Specular (Shading) Pass The Specular (Shading) pass contains
(surprise) your specular shading and hot-spots - this can be
applied on top of all the other passes (using 'Screen' or 'Linear
Dodge' if you prefer in Photoshop)
to complete the re-construction of your render. The specular shading
data can be used as
the basis for blooms and highlights in comp.
Alpha Channel When is a pass not a pass? When
it's a channel - an Alpha Channel to be precise. Hopefully you're
already familiar with these - alphas are incredibly handy for isolating
elements in your renders. The
above image was created by making the background a constant black -
this allows us to easily
mask out any of the 3 shapes in the render to work on them
individually. LightWave can actually
write out alpha channels by itself but seeing as we're already using
Buffer Saver, its just as easy to
check Alpha and get it to
write these out at the same time as all the other passes.
Depth Pass The last of
the really useful passes
Buffer Saver can export, the Depth
pass is a greyscale image
representing the Z-depth of the geometry in your scene - Buffer Saver
renders the depth from black
(furthest from the camera) to white (closest to). The most common usage
for a depth map is to
add fog or depth-of-field effects to a shot although in the hands of an
experienced compositor
(assuming you're lucky enough to ever find one) it can be used to place
effects into the shot in
front or behind the geometry - amazing what you can do in 2D with the
right data...
Luminous Pass Buffer Saver
can actually write out quite a few more passes than the ones I've
listed above.
Unfortunately the remainder are somewhat less useful. In the above
example we've got the
'Luminous' pass - this is a greyscale image that represents the
luminosity value of the
cylinder
object in my demo scene. In the quick 'n dirty Photoshop comp at the
bottom of this page
you'll see how I've used this to boost the luminosity of the object. In
addition to Luminous,
the other 'value' passes Buffer Saver can output are Diffuse - not to be confused with Diffuse (Shading), Specular - ditto, Mirror - reflection values and Trans - transparency values.
Depending on what types of surfacing you're using in your scene and on
the requirements of
your compositor, some of these passes may be of use - Trans and Luminous are likely to be the
ones you use the most. If in doubt, you could always output all the
value passes - better to
have 'em and not need them than need 'em and not have them...
One last obscure pass that's worth outputting is the Geometry pass - this is a greyscale
image that represents the incidence angles of your geometry - white is
0° and black is 90° -
useful for some compositing and colour-correction effects.
Putting it all together...
"Huh? Isn't that like - the
compositor's job??" - Well, uh... yeah but by looking at the
example below
hopefully you'll have a better understanding of how it all works and
why it's a good thing. Let's take
a look at how this works in Photoshop:
OK, here's what we've got - the bottom left image is the original
LightWave render, the top left
is a demo comp I put together in Photoshop. I tweaked the brightness of
the shadows a little bit
and added in the ambient occlusion which was rendered separately. I
couldn't quite get the look
of the cylinders to match (I'm no comper and not exactly a Photoshop
genius) but I actually
prefer the look of the comped image anyway. If you want to take a look
at the Photoshop
comp, you can download it here.
OK - so how do I get all those passes
out of LightWave?
Simple! Hit Ctrl + F8 to get the Effects panel with the
Processing tab and add Buffer_Saver
under Image Filters. Double-click
on Buffer Saver to pop up the panel below:
Buffer Saver
Check the most useful buffers as seen above - ask your comper if they
need the Diffuse, Mirror and
Specular value passes (I've omitted them above). If you're outputting a
Depth pass, check the
'Normalize' button and set the 'Near Clip' to the distance between the
camera and the object
closest to it throughout the
duration of your scene. Set the 'Far Clip' to the distance
between the
and the object furthest from it throughout
the duration of your scene.
Lastly, pick your file format and save location - that's it!
You're ready to render!
Why couldn't you have told me that at
the beginning so I didn't have to read all this?