





 |
|
Visual
Effects in Shrek
|
Juan Buhler, Jonathan Gibbs, Scott
Peterson, Scott Singer
PDI/DreamWorks
March 27, 2001
Notes by Rob
Fitzsimmons
PDI/DreamWorks will be releasing Shrek
May 18th. Meeting attendees had a captivating look at the research
and results that push the limits of CG. The four presenters discussed
skin, "mud-poop", trees, and mixing mud and beer.
Jonathan Gibbs spoke first about the challenges of rendering
skin. Why is it so hard to get good skin on a 3D character? We see
it all the time; we know when something's wrong. Why is it that
we can tell a mapped skin texture from an organic skin? Skin is
translucent, and therefore the light is scattered in the subsurface.
You can learn more about how Henrik Wann Jensen at Stanford solves
that problem in our meeting notes from February.
PDI's subsurface scattering approach is somewhere between physical
reality and artistic judgment. Inspired by physical reality, the
skin shader calculates light that penetrates the surface, bounces
around, and exits the skin at a different point. The artistic approximation
comes into play when the skin goes from sun to shade. The shadow
edge has a reddish color due to the simulation of light entering
the lit part of the skin, and diffusing under the skin to creep
into the shadow area. This effect can be seen when you press a flashlight
against your hand. Artists also took matters into their own hands
by painting trasparency maps to thinner areas such as ears.
Jonathan was also responsible for hair. As we know, a realistic
character has countless strands of hair. PDI found it was best to
dynamically generate the hair only at render time. Otherwise, Fiona
was a prohibitively large model - around 40 megs. They modeled the
structure of the hair, not unlike an artist would quickly sketch
the volume that a persons hair occupies. I learned from figure drawing
that's the better way to convey hair, rather that trying to draw
every strand. But I digress. They used that geometry as guide for
growing hair, and textured the hair though a random lookup to a
column on a color map. To render convincing hair, a volumetric depth
map was used to calculate and generate shadows.
Download his presentation
Scott Singer then spoke about the challenges of animating
and rendering "mud-poop". A real crowd pleaser. Scott's
task was to find the line where gross stops being funny, and stay
just West of that line. Mud poop is used to tell us of Shrek's bachelor
kind of life. Scott solved the challenge of creating believable
mud-poop and other semi-solids with particles. The poop had to undergo
drastic changes in scale, stretching to twice its length at times.
Scott's solution involved "marshmallow" like geometry
wrapped with a stretchy skin. Animating the marshmallows imparted
the movement to the skin. First renders demonstrated the traditional
UV mapping methods distort way too much. The answer to this problem
comes from sampling the stretchy skin's UV coordinates, translating
into 3D world space, and assigning particles to those points. The
particles don't stretch themselves, but stretch the space in between.
The result is a clumpy surface that breaks at points to reveal a
sublayer of more gooey stuff. Beyond the technical lessons learned,
Scott also saw the sociological aspects of calling poop meetings
over the company intercom. He learned that some people are uncomfortable
discussing poop around a conference table. Most interestingly, everybody
has a different idea of what it should look like, and they are surprised
by that fact.
Download Scott's presentation
Scott Peterson presented the approach he using to create
and animate the hundreds of trees in the film. The trees were represented
as curves - sort of a stick figure of the tree. Tubes were assigned
to the reference curves, and viola, you have a tree. Well, mostly.
Close inspection shows the tubes crashing through each other where
the branches meet. Converting the tree to a polygon mesh, and then
relaxing the polys gave the smooth transition from trunk to branch.
The curve representation of trees helped both in their compact structure
(less data required to represent the tree), and their hierarchical
relationships. Correct hierarchy is crucial for animating the tree.
Adding a wind force to the tip of a branch affects that branch much
more that its parent branch and much much more than the trunk. As
far as animating, the first attempt involved applying a wind force
to the tree, and dynamically solving the motion. This effect was
not quite right. More complex wind forces would generate better
motion. The wind force was better described as a fluid. This produced
eddies and a more natural force to drive the tree motion.
Download the other Scott's presentation
Juan Buhler worked on the daunting challenge of creating
the complex interactions between objects, thick mud and thinner
water and beer. Starting with Nick Foster's Flu Tools from the Antz
flood sequence, a team modified it to describe a thicker mud. Collision
detection wasn't too hard for known geometry, such as Shrek's feet,
or other objects. The real challenge was to get two dynamic simulations
to interact. They could simulate the mud, and then used the mud
as an obstacle for the water/beer. But since the mud was not aware
of the water and beer, it would not leave any space for it. The
solution is the run them both in the same simulation, but this is
very costly in computer power. Tests looked great - a ball thrown
into a rectangular section of mud behaved very convincingly. Mud
splashes away, and tries to return to equilibrium, but the water,
being runnier, can rush to fill the void faster. Puddles form and
change shape as mud slowly returns to displace the water. Juan was
really pleased with these tests. Then he realized the slop that
Shrek and others will be wallowing in was a hundred times larger.
This huge increase in real estate prohibits running a simulation
anytime this decade. However, all they really care about is the
goop that's immediately in Shrek's wake. They broke the mud field
into sections, and only simulated the ones needed. A blending system
was put into place the carry the effect into neighboring, inactive
sections.
Download Juan's presentation
Send comments to the webmaster
|
|