| Q&A |
Callan
McInally from AMD
ATI/AMD Ruby Demo
july 2007 |
| |

"Our
demo engine, called the Sushi Engine, was designed and developed
in house. Creating our own engine allows us to target and
focus on the cutting edge of real-time computer graphics hardware
(unlike game engines that have to support multiple generations)
and also allows us to gain valuable insights into the fine
art of graphics engine architecting and development. "
I |
| Q1 |
The
latest ATI Radeon Ruby:Whiteout demo pushes the boundaries of
ultra realism. What is ATI's aim in producing such technology
demos? |
| A1 |
Get
to know the challenges that next-gen game developers will
be facing, solve some of the problems that current-gen game
developers are already facing, show case the power and features
of our latest GPUs, but most of all… we do it because
we love graphics and it’s just too much fun to pass
up. |
| |
|
| Q2 |
How
much time did the making of the demo take? |
| A2 |
About
2 years (Spring 2005 -> Spring 2007) but this also includes
developing a new engine and new art tools (which we will re-use
for the next few years/demos/etc). |
| |
|
| Q3 |
Does
the demo make use of a home-made, ATI-internal 3D engine? Or
does it leverage a game engine such as the Unreal Engine or
the CryEngine? |
| A3 |
Our
demo engine, called the Sushi Engine, was designed and developed
in house. Creating our own engine allows us to target and focus
on the cutting edge of real-time computer graphics hardware
(unlike game engines that have to support multiple generations)
and also allows us to gain valuable insights into the fine art
of graphics engine architecting and development. We can experiment
with new rendering techniques in a relatively low-risk environment
(a game production environment is often hectic and it can be
difficult to find time to try new things that may not work out
in the end). The lessons we learn become valuable information
for our hardware and software architects as well as external
game developers. |
| |
|
| Q4 |
In
the demo, the snow's rendering is quite astonishing. How did
you reach such quality level? |
| A4 |
First,
we have fantastic artists who aren’t scared of diving
into the shader code to make adjustments if they see fit. Second,
the HD 2xxx series provides enormous amounts of compute power
which enabled us to create highly configurable, procedural shaders
which gives the mountains a very natural and non-repetitive
look. If the mountains were to be hand-painted, the quality
would have been much lower… there simply isn’t enough
time in the day to paint all that detail into all those mountains.
This kind of technique is exactly how such a virtual landscape
would be created for a feature film.
In order to achieve the right look, we used subsurface
scattering techniques to simulate the complex interactions
that occur between snow and light. In addition to subsurface
scattering, more advanced lighting models were used. Anytime
you are lighting something outdoors it is important to take
sky light into account. When light from the sun reaches earth,
it scatters due to the gases and other particles that make
up our atmosphere. So when you place an object outdoors, there’s
light coming at it from all different directions (not just
the direction of the sun) and so the sky itself acts as a
giant blue-ish area light source.
|
| |
|
| Q5 |
The
skin and lips of the Ruby character seem to come right from
an animation feature film. Is it difficult to achieve? |
| A5 |
Animated
characters are always a challenge. The Ruby character uses many
of the same animation techniques that are employed by the film
industry. Our artists created an enormous set of face shapes
(which you can think of as poses or expressions) and then they
pick and choose from these shapes blending in a smile here and
a wink there to build up each and every frame of animation.
To speed up the process we partnered with ImageMetrics a company
that captures the facial performance of real actors using digital
video and then uses complex algorithms (similar to facial recognition)
to pick and chose the artist created face shapes and then blend
them together to mimic our actress’s performance. In addition
to all this, we also developed a technique that allows artists
to animate facial wrinkles on Ruby. Though it may seem like
a minor detail, facial wrinkles are an important part of facial
expression. A wrinkled brow is all that’s needed to let
you know that a person is deep in thought and a small crease
on Ruby’s cheek helps let you know that her smile is genuine. |
| |
|
| Q6 |
Some
methods used to be available only in pre-calculated rendering,
i.e. Sub-Surface Scattering, Ambient Occlusion, Environment
Reflection. Are they now available to realtime content makers? |
| A6 |
Yes,
in fact all three of your examples are used in the Whiteout
demo. These technologies are available to realtime content makers
but these techniques are also constantly improving. For example,
we are on to our 4th generation of subsurface scattering technology
for human skin (Ruby1 -> Ruby4). All three of those techniques
fall under the “global illumination” umbrella (where
the lighting calculation performed at the surface of an object
depends on the global, surrounding scene) and this area of real-time
computer graphics continues to be a hot area of research with
new advances being developed all the time. |
| |
|
| Q7 |
Which
DCC tools were used in the making of this demo? |
| A7 |
Maya,
ZBrush, Modo, World Machine, Photoshop, and some of our own
custom tools such as CubeMapGen, ATI Normal Mapper, and Tootle. |
| |
|
| Q8 |
Can
this demo run in real time on a Radeon HD 2900XT? |
| A8 |
Yes.
|
| |
|
| Q9 |
Can
we expect games and real time productions to reach such visual
excellence? What will be left to the pre-calculated 3D field? |
| A9 |
Absolutely.There’s
still plenty for offline simulation problems to tackle. Rendering
is one aspect of offline CG. There’s also physics and
other forms of simulation. Interestingly, one shift we are seeing
in the offline rendering field is that large scale CPU based
render-farms are being replaced by arrays of GPUs. This makes
sense because of the vast compute power offered by GPUs.
|
| |
|
| |
|